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
@@ -1 +1 @@
{"abstract":[{"text":"A game platform type, if any.","type":"text"}],"metadata":{"symbolKind":"property","title":"platform","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"platform","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:13AmiiboService0A0V","text":"Amiibo","kind":"typeIdentifier"},{"text":".","kind":"text"},{"text":"Platform","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V8PlatformV"},{"text":"?","kind":"text"}],"roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"role":"symbol","externalID":"s:13AmiiboService0A0V8platformAC8PlatformVSgvp"},"primaryContentSections":[{"declarations":[{"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"platform","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:13AmiiboService0A0V","text":"Amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"typeIdentifier"},{"text":".","kind":"text"},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","text":"Platform","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V8PlatformV"},{"text":"?","kind":"text"}],"platforms":["macOS"],"languages":["swift"]}],"kind":"declarations"}],"sections":[],"kind":"symbol","schemaVersion":{"minor":3,"major":0,"patch":0},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/platform-swift.property"]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/platform-swift.property":{"abstract":[{"text":"A game platform type, if any.","type":"text"}],"url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.property","role":"symbol","title":"platform","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property","kind":"symbol","type":"topic","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"platform","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Amiibo","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V"},{"text":".","kind":"text"},{"preciseIdentifier":"s:13AmiiboService0A0V8PlatformV","text":"Platform","kind":"typeIdentifier"},{"text":"?","kind":"text"}]},"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/Amiibo":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","role":"symbol","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Amiibo","kind":"identifier"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Platform"}],"title":"Amiibo.Platform","abstract":[{"type":"text","text":"A model that represents a collection of "},{"type":"codeVoice","code":"Switch"},{"type":"text","text":", "},{"type":"codeVoice","code":"Switch 2"},{"type":"text","text":", "},{"type":"codeVoice","code":"3DS"},{"type":"text","text":", and "},{"type":"codeVoice","code":"WiiU"},{"type":"text","text":" games related to an amiibo."}],"role":"symbol","kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Platform"}]}}}
{"sections":[],"schemaVersion":{"minor":3,"patch":0,"major":0},"abstract":[{"type":"text","text":"The game platform data for this amiibo, if available."}],"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"platform","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Amiibo","kind":"typeIdentifier","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","preciseIdentifier":"s:13AmiiboService0A0V"},{"text":".","kind":"text"},{"text":"Platform","kind":"typeIdentifier","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","preciseIdentifier":"s:13AmiiboService0A0V8PlatformV"},{"text":"?","kind":"text"}]}]}],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/platform-swift.property"]}],"metadata":{"symbolKind":"property","externalID":"s:13AmiiboService0A0V8platformAC8PlatformVSgvp","title":"platform","role":"symbol","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"platform","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Amiibo","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V"},{"text":".","kind":"text"},{"text":"Platform","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V8PlatformV"},{"text":"?","kind":"text"}]},"kind":"symbol","references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/platform-swift.property":{"abstract":[{"type":"text","text":"The game platform data for this amiibo, if available."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.property","title":"platform","type":"topic","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"platform"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Amiibo","preciseIdentifier":"s:13AmiiboService0A0V"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"Platform","preciseIdentifier":"s:13AmiiboService0A0V8PlatformV"},{"kind":"text","text":"?"}],"kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"url":"\/documentation\/amiiboservice\/amiibo","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"title":"Amiibo","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct":{"navigatorTitle":[{"kind":"identifier","text":"Platform"}],"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct","type":"topic","title":"Amiibo.Platform","role":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"text":"Platform","kind":"identifier"}],"abstract":[{"text":"A model that represents a collection of ","type":"text"},{"type":"codeVoice","code":"Switch"},{"type":"text","text":", "},{"type":"codeVoice","code":"Switch 2"},{"type":"text","text":", "},{"type":"codeVoice","code":"3DS"},{"type":"text","text":", and "},{"type":"codeVoice","code":"Wii U"},{"type":"text","text":" games related to an amiibo."}]},"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"}}}