Overall improvements and data update (#22)

This PR contains the work done to update the live tests to the latest data plus lots of QoL improvements to the library, including:

* added test cases to test the ``AmiiboService` locally;
* conformed the models to the `Hashable` protocol;
* documented the use of caching with the `AmiiboService` service;
* updated the reference to the new AmiiboAPI url;
* updated the year on the copyrights and header files;
* updated the overall documentation of the source code and the package.

Reviewed-on: #22
Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
This commit was merged in pull request #22.
This commit is contained in:
2026-03-22 23:39:48 +00:00
committed by Javier Cicchelli
parent fae4b44698
commit 2b01ec14bf
375 changed files with 1177 additions and 700 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
{"abstract":[{"text":"Initializes this client.","type":"text"}],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient\/init(transport:)"},"metadata":{"symbolKind":"init","title":"init(transport:)","fragments":[{"text":"init","kind":"identifier"},{"text":"(","kind":"text"},{"text":"transport","kind":"externalParam"},{"text":": any ","kind":"text"},{"text":"ClientTransport","kind":"typeIdentifier","preciseIdentifier":"s:14OpenAPIRuntime15ClientTransportP"},{"text":")","kind":"text"}],"roleHeading":"Initializer","modules":[{"name":"AmiiboService"}],"role":"symbol","externalID":"s:13AmiiboService0A10LiveClientV9transportAC14OpenAPIRuntime0D9Transport_p_tcfc"},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiiboliveclient\/init(transport:)"]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient"]]},"schemaVersion":{"patch":0,"major":0,"minor":3},"kind":"symbol","sections":[],"primaryContentSections":[{"kind":"declarations","declarations":[{"languages":["swift"],"tokens":[{"text":"init","kind":"keyword"},{"text":"(","kind":"text"},{"text":"transport","kind":"externalParam"},{"text":": any ","kind":"text"},{"text":"ClientTransport","kind":"typeIdentifier","preciseIdentifier":"s:14OpenAPIRuntime15ClientTransportP"},{"text":" = URLSessionTransport())","kind":"text"}],"platforms":["macOS"]}]},{"kind":"parameters","parameters":[{"name":"transport","content":[{"inlineContent":[{"text":"A transport that performs HTTP operations.","type":"text"}],"type":"paragraph"}]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboLiveClient/init(transport:)":{"type":"topic","abstract":[{"text":"Initializes this client.","type":"text"}],"title":"init(transport:)","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient\/init(transport:)","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"transport"},{"kind":"text","text":": any "},{"preciseIdentifier":"s:14OpenAPIRuntime15ClientTransportP","kind":"typeIdentifier","text":"ClientTransport"},{"kind":"text","text":")"}],"role":"symbol","kind":"symbol","url":"\/documentation\/amiiboservice\/amiiboliveclient\/init(transport:)"},"doc://AmiiboService/documentation/AmiiboService":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"text":"Amiibo API","type":"text"}]},{"text":" backend service.","type":"text"}],"role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/AmiiboLiveClient":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboLiveClient"}],"title":"AmiiboLiveClient","abstract":[{"type":"text","text":"A type that implements a live client to the online service."}],"role":"symbol","kind":"symbol","url":"\/documentation\/amiiboservice\/amiiboliveclient","type":"topic","navigatorTitle":[{"text":"AmiiboLiveClient","kind":"identifier"}]}}}
{"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient\/init(transport:)"},"kind":"symbol","metadata":{"symbolKind":"init","roleHeading":"Initializer","modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A10LiveClientV9transportAC14OpenAPIRuntime0D9Transport_p_tcfc","role":"symbol","title":"init(transport:)","fragments":[{"kind":"identifier","text":"init"},{"text":"(","kind":"text"},{"text":"transport","kind":"externalParam"},{"text":": any ","kind":"text"},{"preciseIdentifier":"s:14OpenAPIRuntime15ClientTransportP","text":"ClientTransport","kind":"typeIdentifier"},{"text":")","kind":"text"}]},"sections":[],"variants":[{"paths":["\/documentation\/amiiboservice\/amiiboliveclient\/init(transport:)"],"traits":[{"interfaceLanguage":"swift"}]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient"]]},"schemaVersion":{"minor":3,"patch":0,"major":0},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"init","kind":"keyword"},{"text":"(","kind":"text"},{"kind":"externalParam","text":"transport"},{"kind":"text","text":": any "},{"kind":"typeIdentifier","preciseIdentifier":"s:14OpenAPIRuntime15ClientTransportP","text":"ClientTransport"},{"kind":"text","text":" = URLSessionTransport())"}]}]},{"kind":"parameters","parameters":[{"content":[{"inlineContent":[{"type":"text","text":"A transport that performs HTTP operations. Defaults to a "},{"code":"URLSessionTransport","type":"codeVoice"},{"type":"text","text":" using the shared session."}],"type":"paragraph"}],"name":"transport"}]}],"abstract":[{"type":"text","text":"Initializes this client with a transport for performing HTTP operations."}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboLiveClient/init(transport:)":{"fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"transport"},{"kind":"text","text":": any "},{"kind":"typeIdentifier","preciseIdentifier":"s:14OpenAPIRuntime15ClientTransportP","text":"ClientTransport"},{"kind":"text","text":")"}],"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient\/init(transport:)","type":"topic","url":"\/documentation\/amiiboservice\/amiiboliveclient\/init(transport:)","title":"init(transport:)","role":"symbol","abstract":[{"type":"text","text":"Initializes this client with a transport for performing HTTP operations."}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboLiveClient":{"navigatorTitle":[{"kind":"identifier","text":"AmiiboLiveClient"}],"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient","url":"\/documentation\/amiiboservice\/amiiboliveclient","type":"topic","title":"AmiiboLiveClient","role":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"AmiiboLiveClient","kind":"identifier"}],"abstract":[{"type":"text","text":"A type that implements a live client to the "},{"isActive":true,"identifier":"https:\/\/www.amiiboapi.org","type":"reference"},{"text":" online service.","type":"text"}]},"doc://AmiiboService/documentation/AmiiboService":{"kind":"symbol","url":"\/documentation\/amiiboservice","role":"collection","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"text":"A library that provides everything the developer needs to interact with the ","type":"text"},{"inlineContent":[{"text":"Amiibo API","type":"text"}],"type":"strong"},{"text":" backend service.","type":"text"}],"title":"AmiiboService"},"https://www.amiiboapi.org":{"identifier":"https:\/\/www.amiiboapi.org","title":"Amiibo API","titleInlineContent":[{"type":"text","text":"Amiibo API"}],"url":"https:\/\/www.amiiboapi.org","type":"link"}}}