Few fixes and improvements to the library, plus Github Actions setup (#31)
CI / Build and test (push) Canceled after 0s
Documentation / Build documentation (push) Canceled after 0s
Documentation / Deploy to GitHub Pages (push) Canceled after 0s

This PR contains the work done to fix a cancellation-mapping bug in `AmiiboLiveClient`, bring the client under offline test coverage, add the conformances SwiftUI and persistence need, and moves CI and documentation publishing to GitHub Actions. All public API changes are additive.

### Fix

- `AmiiboLiveClient` reported an early task cancellation as `.unknown("CancellationError()")`. The OpenAPI runtime wraps every error in `ClientError`, so the `CancellationError` check never matched; it now also checks the wrapped error and throws `.cancelled`.

### Tests

- `ThrowingTransport` and `StubTransport` test doubles let the live client run offline. New tests cover error mapping, HTTP status → error mapping, `oneOf` object-vs-list decoding, `"amiibo": null`, sorting, filter → query encoding, `Platform`/`Release` mapping, and the date transcoder.
- Models gained `package` memberwise initializers so tests can build real fixtures without `@testable`. These are not public API.
- The test target now depends on `OpenAPIRuntime` and `HTTPTypes` (both already in the dependency graph).

### API
- Models are `Codable` and `Identifiable` (`Amiibo.id` is its `identifier`; the key/name models use `key`).
- Filters are `Hashable`.

### Documentation
- Doc comments trimmed library-wide; one repeated `- Throws:` sentence appeared 24 times. `Library.md` and the README tightened to match.

### CI and docs publishing
- `ci.yml`: build and offline tests on PRs and pushes to `main`.
- `live-tests.yml`: weekly and on-demand run against the live API.
- `docs.yml`: builds DocC on PRs, deploys to GitHub Pages on `main`. Pinned to Xcode 26 because swift-docc-plugin 1.5.0 fails to launch its tools under Xcode 27.
- The generated `docs/` folder (327 files) is removed from the repository and ignored.

Reviewed-on: #31
Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
This commit was merged in pull request #31.
This commit is contained in:
javier authored and Javier Cicchelli committed 2026-10-25 19:54:30 +00:00
1 parent 44bfaca553
commit 13b9c74a38
361 files changed
+1395 -863

No files matched your search

+57
View File
@@ -0,0 +1,57 @@
# ===----------------------------------------------------------------------===
#
# This source file is part of the Amiibo Service open source project
#
# Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
# Licensed under Apache license v2.0
#
# See LICENSE for license information
# See CONTRIBUTORS for the list of Amiibo Service project authors
#
# SPDX-License-Identifier: Apache-2.0
#
# ===----------------------------------------------------------------------===
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
name: Build and test
runs-on: macos-latest
steps:
- name: Check out
uses: actions/checkout@v4
- name: Select Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest-stable
- name: Show toolchain
run: swift --version
- name: Cache build
uses: actions/cache@v4
with:
path: .build
key: spm-${{ runner.os }}-${{ hashFiles('Package.resolved') }}
restore-keys: spm-${{ runner.os }}-
- name: Build
run: make lib-build
- name: Test
run: make lib-test
+77
View File
@@ -0,0 +1,77 @@
# ===----------------------------------------------------------------------===
#
# This source file is part of the Amiibo Service open source project
#
# Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
# Licensed under Apache license v2.0
#
# See LICENSE for license information
# See CONTRIBUTORS for the list of Amiibo Service project authors
#
# SPDX-License-Identifier: Apache-2.0
#
# ===----------------------------------------------------------------------===
name: Documentation
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
permissions:
contents: read
concurrency:
group: docs-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: Build documentation
runs-on: macos-latest
steps:
- name: Check out
uses: actions/checkout@v4
# Pinned: swift-docc-plugin 1.5.0 fails to launch its tools under Xcode 27 ("Bad CPU type in executable").
- name: Select Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '26'
- name: Show toolchain
run: swift --version
- name: Cache build
uses: actions/cache@v4
with:
path: .build
key: spm-${{ runner.os }}-${{ hashFiles('Package.resolved') }}
restore-keys: spm-${{ runner.os }}-
- name: Generate
run: make doc-generate-github
- name: Upload
uses: actions/upload-pages-artifact@v3
with:
path: docs
deploy:
name: Deploy to GitHub Pages
if: github.event_name != 'pull_request'
needs: build
runs-on: ubuntu-latest
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deploy.outputs.page_url }}
steps:
- name: Deploy
id: deploy
uses: actions/deploy-pages@v4
+52
View File
@@ -0,0 +1,52 @@
# ===----------------------------------------------------------------------===
#
# This source file is part of the Amiibo Service open source project
#
# Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
# Licensed under Apache license v2.0
#
# See LICENSE for license information
# See CONTRIBUTORS for the list of Amiibo Service project authors
#
# SPDX-License-Identifier: Apache-2.0
#
# ===----------------------------------------------------------------------===
name: Live tests
on:
schedule:
# Every Monday at 06:00 UTC.
- cron: '0 6 * * 1'
workflow_dispatch:
permissions:
contents: read
jobs:
test:
name: Test against the live service
runs-on: macos-latest
steps:
- name: Check out
uses: actions/checkout@v4
- name: Select Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest-stable
- name: Show toolchain
run: swift --version
- name: Cache build
uses: actions/cache@v4
with:
path: .build
key: spm-${{ runner.os }}-${{ hashFiles('Package.resolved') }}
restore-keys: spm-${{ runner.os }}-
- name: Test
run: make lib-test
env:
AMIIBO_LIVE_TESTS: '1'
+2 -1
View File
@@ -48,4 +48,5 @@ Packages/
.vscode .vscode
# DocC documentation # DocC documentation
*.doccarchive *.doccarchive
docs/
+4 -1
View File
@@ -35,6 +35,7 @@ let package = Package(
.package(url: "https://github.com/apple/swift-openapi-generator.git", from: "1.11.0"), .package(url: "https://github.com/apple/swift-openapi-generator.git", from: "1.11.0"),
.package(url: "https://github.com/apple/swift-openapi-runtime", from: "1.5.0"), .package(url: "https://github.com/apple/swift-openapi-runtime", from: "1.5.0"),
.package(url: "https://github.com/apple/swift-openapi-urlsession", from: "1.0.2"), .package(url: "https://github.com/apple/swift-openapi-urlsession", from: "1.0.2"),
.package(url: "https://github.com/apple/swift-http-types", from: "1.0.0"),
.package(url: "https://github.com/swiftlang/swift-docc-plugin", from: "1.1.0"), .package(url: "https://github.com/swiftlang/swift-docc-plugin", from: "1.1.0"),
], ],
targets: [ targets: [
@@ -52,7 +53,9 @@ let package = Package(
.testTarget( .testTarget(
name: AmiiboService.test, name: AmiiboService.test,
dependencies: [ dependencies: [
.byName(name: AmiiboService.target) .byName(name: AmiiboService.target),
.product(name: "HTTPTypes", package: "swift-http-types"),
.product(name: "OpenAPIRuntime", package: "swift-openapi-runtime")
], ],
path: "Tests/AmiiboService" path: "Tests/AmiiboService"
), ),
+2 -1
View File
@@ -1,5 +1,6 @@
[![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Frock-n-code%2Famiibo-service%2Fbadge%3Ftype%3Dswift-versions)](https://swiftpackageindex.com/rock-n-code/amiibo-service) [![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Frock-n-code%2Famiibo-service%2Fbadge%3Ftype%3Dswift-versions)](https://swiftpackageindex.com/rock-n-code/amiibo-service)
[![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Frock-n-code%2Famiibo-service%2Fbadge%3Ftype%3Dplatforms)](https://swiftpackageindex.com/rock-n-code/amiibo-service) [![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Frock-n-code%2Famiibo-service%2Fbadge%3Ftype%3Dplatforms)](https://swiftpackageindex.com/rock-n-code/amiibo-service)
[![](https://github.com/rock-n-code/amiibo-service/actions/workflows/ci.yml/badge.svg)](https://github.com/rock-n-code/amiibo-service/actions/workflows/ci.yml)
# Amiibo Service # Amiibo Service
@@ -56,7 +57,7 @@ let gameSeries = try await service.getGameSeries()
let lastUpdated = try await service.getLastUpdated() let lastUpdated = try await service.getLastUpdated()
``` ```
Results are sorted in ascending order by identifier (amiibos) or key (everything else). Results are sorted in ascending order by identifier (amiibos) or key (everything else). Models are `Hashable`, `Codable`, and `Identifiable`; filters are `Hashable`.
## Error handling ## Error handling
@@ -6,7 +6,7 @@ A Swift client for the Amiibo API.
`AmiiboService` fetches data from the [Amiibo API](https://www.amiiboapi.org) and returns it as Swift models. `AmiiboService` fetches data from the [Amiibo API](https://www.amiiboapi.org) and returns it as Swift models.
The library does not expose a generated client that maps one-to-one to the REST endpoints. Instead, ``AmiiboService`` offers one method per resource, takes a typed filter, returns sorted models, and throws a single ``AmiiboServiceError`` type. ``AmiiboService`` offers one method per resource: each takes a typed filter, returns sorted models, and throws ``AmiiboServiceError``.
## Installation ## Installation
@@ -76,9 +76,7 @@ do throws(AmiiboServiceError) {
## Caching ## Caching
The library has no built-in cache. The Amiibo API asks regular consumers to cache responses. The library has no built-in cache, and the Amiibo API asks regular consumers to cache responses. To cache at the HTTP level, give ``AmiiboLiveClient`` a transport backed by a `URLCache`:
To cache at the HTTP level, give ``AmiiboLiveClient`` a transport backed by a `URLCache`. The cache follows the server's cache headers:
```swift ```swift
import OpenAPIURLSession import OpenAPIURLSession
@@ -101,11 +99,11 @@ let service = AmiiboService(
) )
``` ```
You can also store the returned models in your own application storage. Models are `Codable`, so you can also store them yourself.
## Testing ## Testing
To test without network access, pass a mock ``AmiiboClient`` to ``AmiiboService/init(client:)``. The mock can return stub data or throw ``AmiiboServiceError`` values. ``AmiiboClient`` refines `Sendable`, so the mock must be `Sendable`, too: To test without network access, pass a mock ``AmiiboClient`` to ``AmiiboService/init(client:)``. ``AmiiboClient`` refines `Sendable`, so the mock must be `Sendable`, too:
```swift ```swift
import AmiiboService import AmiiboService
@@ -18,13 +18,11 @@ extension DateFormatter {
// MARK: Properties // MARK: Properties
/// An ISO date formatter. /// An ISO date formatter for the `yyyy-MM-dd` format.
///
/// This formatter implements the `yyyy-MM-dd` date format.
static let isoDate: DateFormatter = { static let isoDate: DateFormatter = {
let formatter = DateFormatter() let formatter = DateFormatter()
// A fixed-format date requires the POSIX locale, as the user's locale or 12/24-hour setting could otherwise alter the parsing. // The POSIX locale keeps the user's locale and 12/24-hour setting from altering fixed-format parsing.
formatter.locale = .init(identifier: "en_US_POSIX") formatter.locale = .init(identifier: "en_US_POSIX")
formatter.dateFormat = "yyyy-MM-dd" formatter.dateFormat = "yyyy-MM-dd"
formatter.timeZone = .init(secondsFromGMT: 0) formatter.timeZone = .init(secondsFromGMT: 0)
@@ -32,14 +30,13 @@ extension DateFormatter {
return formatter return formatter
}() }()
/// An ISO timestamp formatter. /// An ISO timestamp formatter for the `yyyy-MM-dd'T'HH:mm:ss.SSSSSS` format.
/// ///
/// This formatter implements the `yyyy-MM-dd'T'HH:mm:ss.SSSSSS` custom date format. /// Used only to decode the timestamp returned by ``AmiiboService/getLastUpdated()``.
/// Within the context of this library, this formatter is solely used to decode a date formatted as a timestamp that is returned by the ``AmiiboService/getLastUpdated()`` function.
static let isoTimestamp: DateFormatter = { static let isoTimestamp: DateFormatter = {
let formatter = DateFormatter() let formatter = DateFormatter()
// A fixed-format date requires the POSIX locale, as the user's locale or 12/24-hour setting could otherwise alter the parsing. // The POSIX locale keeps the user's locale and 12/24-hour setting from altering fixed-format parsing.
formatter.locale = .init(identifier: "en_US_POSIX") formatter.locale = .init(identifier: "en_US_POSIX")
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSSSS" formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSSSS"
formatter.timeZone = .init(secondsFromGMT: 0) formatter.timeZone = .init(secondsFromGMT: 0)
@@ -12,8 +12,8 @@
// //
// ===----------------------------------------------------------------------=== // ===----------------------------------------------------------------------===
/// A protocol that defines filters containing optional `key` and/or `name` values for querying resources. /// A protocol for filters with optional `key` and `name` values.
protocol KeyNameFilter { protocol KeyNameFilter: Hashable {
// MARK: Properties // MARK: Properties
@@ -13,7 +13,7 @@
// ===----------------------------------------------------------------------=== // ===----------------------------------------------------------------------===
/// A protocol that defines models containing a `key` and `name` pair. /// A protocol that defines models containing a `key` and `name` pair.
protocol KeyNameModel: Sendable, Hashable { protocol KeyNameModel: Sendable, Hashable, Codable, Identifiable {
// MARK: Properties // MARK: Properties
@@ -15,15 +15,15 @@
import Foundation import Foundation
import OpenAPIRuntime import OpenAPIRuntime
/// A type that allows the decoding and encoding of ISO dates, supporting both the `yyyy-MM-dd'T'HH:mm:ss.SSSSSS` timestamp format and the `yyyy-MM-dd` date-only format. /// A transcoder for ISO dates in the `yyyy-MM-dd'T'HH:mm:ss.SSSSSS` timestamp and `yyyy-MM-dd` date-only formats.
struct ISODateTimeTranscoder { struct ISODateTimeTranscoder {
// MARK: Properties // MARK: Properties
/// A formatter to use to decode and encode ISO timestamp dates. /// The ISO timestamp formatter.
private let timestampFormatter: DateFormatter = .isoTimestamp private let timestampFormatter: DateFormatter = .isoTimestamp
/// A formatter to use to decode and encode ISO date-only strings. /// The ISO date-only formatter.
private let dateFormatter: DateFormatter = .isoDate private let dateFormatter: DateFormatter = .isoDate
} }
@@ -34,17 +34,13 @@ extension ISODateTimeTranscoder: DateTranscoder {
// MARK: Functions // MARK: Functions
/// Encodes a date into an ISO timestamp string. /// Encodes a date as an ISO timestamp string.
/// - Parameter date: A date to encode.
/// - Returns: A string representation of the date in `yyyy-MM-dd'T'HH:mm:ss.SSSSSS` format.
func encode(_ date: Date) throws -> String { func encode(_ date: Date) throws -> String {
timestampFormatter.string(from: date) timestampFormatter.string(from: date)
} }
/// Decodes an ISO date string into a date, trying the timestamp format first and falling back to the date-only format. /// Decodes an ISO date string, trying the timestamp format before the date-only one.
/// - Parameter string: A string to decode. /// - Throws: A `DecodingError` if the string matches neither format.
/// - Returns: A date parsed from the string.
/// - Throws: A `DecodingError` if the string cannot be parsed into a valid date.
func decode(_ string: String) throws -> Date { func decode(_ string: String) throws -> Date {
if let date = timestampFormatter.date(from: string) { if let date = timestampFormatter.date(from: string) {
return date return date
@@ -16,16 +16,16 @@ import Foundation
import OpenAPIRuntime import OpenAPIRuntime
import OpenAPIURLSession import OpenAPIURLSession
/// A type that implements a live client to the [Amiibo API](https://www.amiiboapi.org) online service. /// A live client for the [Amiibo API](https://www.amiiboapi.org).
/// ///
/// This client maps any transport error or unsuccessful HTTP response to an ``AmiiboServiceError`` error, and sorts the items of the list responses in ascending order by identifier or key. /// It maps transport errors and unsuccessful responses to ``AmiiboServiceError``, and sorts list results by identifier or key.
public struct AmiiboLiveClient: Sendable { public struct AmiiboLiveClient: Sendable {
// MARK: Constants // MARK: Constants
/// The base URL of the live service, resolved once from the server defined in the OpenAPI specification. /// The base URL of the live service, from the OpenAPI specification.
/// ///
/// The validity of the URL is guaranteed by the bundled `openapi.yaml` specification and enforced by a unit test, so resolution is not expected to fail at runtime. /// A unit test guards this URL, so resolution is not expected to fail at runtime.
static let serverURL: URL = { static let serverURL: URL = {
guard let url = try? Servers.Server1.url() else { guard let url = try? Servers.Server1.url() else {
fatalError("The server URL defined in the OpenAPI specification could not be resolved. Verify that the 'openapi.yaml' server definition is valid.") fatalError("The server URL defined in the OpenAPI specification could not be resolved. Verify that the 'openapi.yaml' server definition is valid.")
@@ -41,8 +41,8 @@ public struct AmiiboLiveClient: Sendable {
// MARK: Initializers // MARK: Initializers
/// Initializes this client with a transport for performing HTTP operations. /// Initializes this client.
/// - Parameter transport: A transport that performs HTTP operations. Defaults to a `URLSessionTransport` using the shared session. /// - Parameter transport: A transport for HTTP operations. Defaults to a `URLSessionTransport` on the shared session.
public init(transport: any ClientTransport = URLSessionTransport()) { public init(transport: any ClientTransport = URLSessionTransport()) {
self.client = .init( self.client = .init(
serverURL: Self.serverURL, serverURL: Self.serverURL,
@@ -61,9 +61,9 @@ extension AmiiboLiveClient: AmiiboClient {
// MARK: Functions // MARK: Functions
/// Gets a list of amiibo items based on a given filter. /// Gets a list of amiibo items based on a given filter.
/// - Parameter filter: A filter to remove unwanted items from the result. /// - Parameter filter: A filter for the result.
/// - Returns: A list of filtered amiibo items. /// - Returns: A list of filtered amiibo items.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result. /// - Throws: An ``AmiiboServiceError`` if the call fails.
public func getAmiibos( public func getAmiibos(
by filter: AmiiboFilter by filter: AmiiboFilter
) async throws(AmiiboServiceError) -> [Amiibo] { ) async throws(AmiiboServiceError) -> [Amiibo] {
@@ -71,9 +71,9 @@ extension AmiiboLiveClient: AmiiboClient {
} }
/// Gets a list of amiibo series based on a given filter. /// Gets a list of amiibo series based on a given filter.
/// - Parameter filter: A filter to remove unwanted items from the result. /// - Parameter filter: A filter for the result.
/// - Returns: A list of filtered amiibo series. /// - Returns: A list of filtered amiibo series.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result. /// - Throws: An ``AmiiboServiceError`` if the call fails.
public func getAmiiboSeries( public func getAmiiboSeries(
by filter: AmiiboSeriesFilter by filter: AmiiboSeriesFilter
) async throws(AmiiboServiceError) -> [AmiiboSeries] { ) async throws(AmiiboServiceError) -> [AmiiboSeries] {
@@ -81,9 +81,9 @@ extension AmiiboLiveClient: AmiiboClient {
} }
/// Gets a list of amiibo types based on a given filter. /// Gets a list of amiibo types based on a given filter.
/// - Parameter filter: A filter to remove unwanted items from the result. /// - Parameter filter: A filter for the result.
/// - Returns: A list of filtered amiibo types. /// - Returns: A list of filtered amiibo types.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result. /// - Throws: An ``AmiiboServiceError`` if the call fails.
public func getAmiiboTypes( public func getAmiiboTypes(
by filter: AmiiboTypeFilter by filter: AmiiboTypeFilter
) async throws(AmiiboServiceError) -> [AmiiboType] { ) async throws(AmiiboServiceError) -> [AmiiboType] {
@@ -91,9 +91,9 @@ extension AmiiboLiveClient: AmiiboClient {
} }
/// Gets a list of game characters based on a given filter. /// Gets a list of game characters based on a given filter.
/// - Parameter filter: A filter to remove unwanted items from the result. /// - Parameter filter: A filter for the result.
/// - Returns: A list of filtered game characters. /// - Returns: A list of filtered game characters.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result. /// - Throws: An ``AmiiboServiceError`` if the call fails.
public func getGameCharacters( public func getGameCharacters(
by filter: GameCharacterFilter by filter: GameCharacterFilter
) async throws(AmiiboServiceError) -> [GameCharacter] { ) async throws(AmiiboServiceError) -> [GameCharacter] {
@@ -101,9 +101,9 @@ extension AmiiboLiveClient: AmiiboClient {
} }
/// Gets a list of game series based on a given filter. /// Gets a list of game series based on a given filter.
/// - Parameter filter: A filter to remove unwanted items from the result. /// - Parameter filter: A filter for the result.
/// - Returns: A list of filtered game series. /// - Returns: A list of filtered game series.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result. /// - Throws: An ``AmiiboServiceError`` if the call fails.
public func getGameSeries( public func getGameSeries(
by filter: GameSeriesFilter by filter: GameSeriesFilter
) async throws(AmiiboServiceError) -> [GameSeries] { ) async throws(AmiiboServiceError) -> [GameSeries] {
@@ -112,7 +112,7 @@ extension AmiiboLiveClient: AmiiboClient {
/// Gets the date when the data was last updated. /// Gets the date when the data was last updated.
/// - Returns: A last updated date, decoded as UTC. /// - Returns: A last updated date, decoded as UTC.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result. /// - Throws: An ``AmiiboServiceError`` if the call fails.
public func getLastUpdated() async throws(AmiiboServiceError) -> Date { public func getLastUpdated() async throws(AmiiboServiceError) -> Date {
try await fetchLastUpdated() try await fetchLastUpdated()
} }
@@ -125,10 +125,7 @@ private extension AmiiboLiveClient {
// MARK: Functions // MARK: Functions
/// Fetches a list of amiibo items based on a given filter. /// Fetches the amiibos matching a filter.
/// - Parameter filter: A filter to remove unwanted items from the result.
/// - Returns: A list of fetched amiibo items filtered, if requested.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
func fetchAmiibos( func fetchAmiibos(
_ filter: AmiiboFilter _ filter: AmiiboFilter
) async throws(AmiiboServiceError) -> [Amiibo] { ) async throws(AmiiboServiceError) -> [Amiibo] {
@@ -174,10 +171,7 @@ private extension AmiiboLiveClient {
} }
} }
/// Fetches a list of amiibo series based on a given filter. /// Fetches the amiibo series matching a filter.
/// - Parameter filter: A filter to remove unwanted items from the result.
/// - Returns: A list of fetched amiibo series filtered, if requested.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
func fetchAmiiboSeries( func fetchAmiiboSeries(
_ filter: AmiiboSeriesFilter _ filter: AmiiboSeriesFilter
) async throws(AmiiboServiceError) -> [AmiiboSeries] { ) async throws(AmiiboServiceError) -> [AmiiboSeries] {
@@ -210,10 +204,7 @@ private extension AmiiboLiveClient {
} }
} }
/// Fetches a list of amiibo types based on a given filter. /// Fetches the amiibo types matching a filter.
/// - Parameter filter: A filter to remove unwanted items from the result.
/// - Returns: A list of fetched amiibo types filtered, if requested.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
func fetchAmiiboTypes( func fetchAmiiboTypes(
_ filter: AmiiboTypeFilter _ filter: AmiiboTypeFilter
) async throws(AmiiboServiceError) -> [AmiiboType] { ) async throws(AmiiboServiceError) -> [AmiiboType] {
@@ -246,10 +237,7 @@ private extension AmiiboLiveClient {
} }
} }
/// Fetches a list of game characters based on a given filter. /// Fetches the game characters matching a filter.
/// - Parameter filter: A filter to remove unwanted items from the result.
/// - Returns: A list of fetched game characters filtered, if requested.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
func fetchGameCharacters( func fetchGameCharacters(
_ filter: GameCharacterFilter _ filter: GameCharacterFilter
) async throws(AmiiboServiceError) -> [GameCharacter] { ) async throws(AmiiboServiceError) -> [GameCharacter] {
@@ -282,10 +270,7 @@ private extension AmiiboLiveClient {
} }
} }
/// Fetches a list of game series based on a given filter. /// Fetches the game series matching a filter.
/// - Parameter filter: A filter to remove unwanted items from the result.
/// - Returns: A list of fetched game series filtered, if requested.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
func fetchGameSeries( func fetchGameSeries(
_ filter: GameSeriesFilter _ filter: GameSeriesFilter
) async throws(AmiiboServiceError) -> [GameSeries] { ) async throws(AmiiboServiceError) -> [GameSeries] {
@@ -319,8 +304,6 @@ private extension AmiiboLiveClient {
} }
/// Fetches the date when the data was last updated. /// Fetches the date when the data was last updated.
/// - Returns: A fetched last updated date, decoded as UTC.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
func fetchLastUpdated() async throws(AmiiboServiceError) -> Date { func fetchLastUpdated() async throws(AmiiboServiceError) -> Date {
let response = try await perform { let response = try await perform {
try await client.getLastUpdated() try await client.getLastUpdated()
@@ -339,10 +322,7 @@ private extension AmiiboLiveClient {
} }
} }
/// Performs an API call, mapping any error thrown by the underlying client to an ``AmiiboServiceError`` error. /// Performs an API call, mapping any error to an ``AmiiboServiceError``.
/// - Parameter operation: A closure that performs the API call.
/// - Returns: The output of the performed API call.
/// - Throws: An ``AmiiboServiceError`` error in case the API call failed.
func perform<Output>( func perform<Output>(
_ operation: () async throws -> Output _ operation: () async throws -> Output
) async throws(AmiiboServiceError) -> Output { ) async throws(AmiiboServiceError) -> Output {
@@ -353,24 +333,23 @@ private extension AmiiboLiveClient {
} }
} }
/// Maps a list of key-name payloads into a sorted list of models. /// Maps key-name payloads into models sorted by key.
/// - Parameter payloads: A list of payloads to map into models.
/// - Returns: A list of models sorted by their keys in ascending order.
func makeModels<Model: KeyNameModel>(from payloads: [some KeyNamePayload]) -> [Model] { func makeModels<Model: KeyNameModel>(from payloads: [some KeyNamePayload]) -> [Model] {
payloads payloads
.map { Model($0) } .map { Model($0) }
.sorted { $0.key < $1.key } .sorted { $0.key < $1.key }
} }
/// Maps a given error to an ``AmiiboServiceError`` error. /// Maps an error to the corresponding ``AmiiboServiceError``.
/// - Parameter error: An error to map.
/// - Throws: An ``AmiiboServiceError`` error that corresponds to the given error.
func handle(error: any Error) throws(AmiiboServiceError) -> Never { func handle(error: any Error) throws(AmiiboServiceError) -> Never {
switch error { switch error {
case is CancellationError: case is CancellationError:
throw AmiiboServiceError.cancelled throw AmiiboServiceError.cancelled
case let clientError as ClientError: case let clientError as ClientError:
// The underlying client wraps every error, including cancellation, in a `ClientError`.
switch clientError.underlyingError { switch clientError.underlyingError {
case is CancellationError:
throw AmiiboServiceError.cancelled
case is DecodingError: case is DecodingError:
throw AmiiboServiceError.decoding throw AmiiboServiceError.decoding
case let urlError as URLError: case let urlError as URLError:
@@ -22,7 +22,7 @@ public enum AmiiboServiceError: Error {
case cancelled case cancelled
/// The response body could not be decoded into the expected model. /// The response body could not be decoded into the expected model.
case decoding case decoding
/// The backend service is currently unreachable due to a network or server issue. /// The service is unreachable due to a network or server issue.
case notAvailable case notAvailable
/// No results were found matching the given filter criteria. /// No results were found matching the given filter criteria.
/// ///
@@ -30,7 +30,7 @@ public enum AmiiboServiceError: Error {
case notFound case notFound
/// The server returned an undocumented HTTP status code. /// The server returned an undocumented HTTP status code.
case undocumented(_ statusCode: Int) case undocumented(_ statusCode: Int)
/// An unexpected error that does not fall into any other category, with a description of the underlying error. /// Any other error, with a description of the underlying one.
case unknown(_ description: String) case unknown(_ description: String)
} }
@@ -15,7 +15,7 @@
/// A filter for amiibo requests. /// A filter for amiibo requests.
/// ///
/// Values left as `nil` do not restrict the result. /// Values left as `nil` do not restrict the result.
public struct AmiiboFilter: Sendable { public struct AmiiboFilter: Sendable, Hashable {
// MARK: Properties // MARK: Properties
@@ -37,10 +37,10 @@ public struct AmiiboFilter: Sendable {
/// An amiibo series key or name to match, if any. /// An amiibo series key or name to match, if any.
public let series: String? public let series: String?
/// A flag that indicates whether to include related games in ``Amiibo/platform``. `nil` means `false`. /// Whether to include related games in ``Amiibo/platform``. `nil` means `false`.
public let showGames: Bool? public let showGames: Bool?
/// A flag that indicates whether to include related games and their amiibo usages in ``Amiibo/platform``. `nil` means `false`. /// Whether to include related games and their usages in ``Amiibo/platform``. `nil` means `false`.
public let showUsage: Bool? public let showUsage: Bool?
/// The last 8 hexadecimal characters of an identifier to match, if any. Shorter values match as a prefix. /// The last 8 hexadecimal characters of an identifier to match, if any. Shorter values match as a prefix.
@@ -61,8 +61,8 @@ public struct AmiiboFilter: Sendable {
/// - series: An amiibo series key or name to match, if any. /// - series: An amiibo series key or name to match, if any.
/// - gameCharacter: A game character key or name to match, if any. /// - gameCharacter: A game character key or name to match, if any.
/// - gameSeries: A game series key or name to match, if any. /// - gameSeries: A game series key or name to match, if any.
/// - showGames: A flag that indicates whether to include related games in ``Amiibo/platform``. `nil` means `false`. /// - showGames: Whether to include related games in ``Amiibo/platform``. `nil` means `false`.
/// - showUsage: A flag that indicates whether to include related games and their amiibo usages in ``Amiibo/platform``. `nil` means `false`. /// - showUsage: Whether to include related games and their usages in ``Amiibo/platform``. `nil` means `false`.
public init( public init(
head: String? = nil, head: String? = nil,
tail: String? = nil, tail: String? = nil,
@@ -15,7 +15,7 @@
import Foundation import Foundation
/// A model that represents an amiibo. /// A model that represents an amiibo.
public struct Amiibo: Sendable, Hashable { public struct Amiibo: Sendable, Hashable, Codable, Identifiable {
// MARK: Properties // MARK: Properties
@@ -36,7 +36,7 @@ public struct Amiibo: Sendable, Hashable {
/// The related games of this amiibo, grouped by platform. /// The related games of this amiibo, grouped by platform.
/// ///
/// This value is `nil` unless the request sets ``AmiiboFilter/showGames`` or ``AmiiboFilter/showUsage``, or when the amiibo has no related games. /// `nil` unless the request sets ``AmiiboFilter/showGames`` or ``AmiiboFilter/showUsage``, or when there are no related games.
public let platform: Platform? public let platform: Platform?
/// The release dates of this amiibo across different regions. /// The release dates of this amiibo across different regions.
@@ -52,7 +52,32 @@ public struct Amiibo: Sendable, Hashable {
public let type: String public let type: String
// MARK: Initializers // MARK: Initializers
/// Initializes this model.
package init(
head: String,
tail: String,
name: String,
type: String,
series: String,
gameCharacter: String,
gameSeries: String,
image: String,
release: Release = .init(),
platform: Platform? = nil
) {
self.gameCharacter = gameCharacter
self.gameSeries = gameSeries
self.head = head
self.image = image
self.name = name
self.platform = platform
self.release = release
self.series = series
self.tail = tail
self.type = type
}
/// Initializes this model from a given payload. /// Initializes this model from a given payload.
/// - Parameter payload: A payload that contains the values for the model. /// - Parameter payload: A payload that contains the values for the model.
init(_ payload: Components.Schemas.Amiibo) { init(_ payload: Components.Schemas.Amiibo) {
@@ -74,7 +99,12 @@ public struct Amiibo: Sendable, Hashable {
} }
// MARK: Computed // MARK: Computed
/// The ``identifier`` of this amiibo.
public var id: String {
identifier
}
/// The full 16-character hexadecimal identifier, composed of the ``head`` and ``tail``. /// The full 16-character hexadecimal identifier, composed of the ``head`` and ``tail``.
public var identifier: String { public var identifier: String {
head + tail head + tail
@@ -14,7 +14,7 @@
extension Amiibo { extension Amiibo {
/// A model that represents a game related to an amiibo. /// A model that represents a game related to an amiibo.
public struct Game: Sendable, Hashable { public struct Game: Sendable, Hashable, Codable {
// MARK: Properties // MARK: Properties
@@ -29,6 +29,17 @@ extension Amiibo {
// MARK: Initializers // MARK: Initializers
/// Initializes this model.
package init(
identifiers: [String],
name: String,
usages: [Usage]? = nil
) {
self.identifiers = identifiers
self.name = name
self.usages = usages
}
/// Initializes this model from a given payload. /// Initializes this model from a given payload.
/// - Parameter payload: A payload that contains the values for the model. /// - Parameter payload: A payload that contains the values for the model.
init(_ payload: Components.Schemas.AmiiboGame) { init(_ payload: Components.Schemas.AmiiboGame) {
@@ -13,8 +13,8 @@
// ===----------------------------------------------------------------------=== // ===----------------------------------------------------------------------===
extension Amiibo { extension Amiibo {
/// A model that represents a collection of `Switch`, `Switch 2`, `3DS`, and `Wii U` games related to an amiibo. /// A model that groups the games related to an amiibo by platform.
public struct Platform: Sendable, Hashable { public struct Platform: Sendable, Hashable, Codable {
// MARK: Properties // MARK: Properties
@@ -31,8 +31,21 @@ extension Amiibo {
public let wiiU: [Game] public let wiiU: [Game]
// MARK: Initializers // MARK: Initializers
/// Initializes this model. /// Initializes this model.
package init(
`switch`: [Game] = [],
switch2: [Game] = [],
threeDS: [Game] = [],
wiiU: [Game] = []
) {
self.switch = `switch`
self.switch2 = switch2
self.threeDS = threeDS
self.wiiU = wiiU
}
/// Initializes this model from the given payloads.
/// ///
/// > important: In case no data is provided, then an instance of this model is not created. /// > important: In case no data is provided, then an instance of this model is not created.
/// ///
@@ -18,7 +18,7 @@ extension Amiibo {
/// A model that represents the regional release dates of an amiibo. /// A model that represents the regional release dates of an amiibo.
/// ///
/// The service provides these dates as date-only values, which are decoded as midnight UTC. /// The service provides these dates as date-only values, which are decoded as midnight UTC.
public struct Release: Sendable, Hashable { public struct Release: Sendable, Hashable, Codable {
// MARK: Properties // MARK: Properties
@@ -36,6 +36,19 @@ extension Amiibo {
// MARK: Initializers // MARK: Initializers
/// Initializes this model.
package init(
america: Date? = nil,
australia: Date? = nil,
europe: Date? = nil,
japan: Date? = nil
) {
self.america = america
self.australia = australia
self.europe = europe
self.japan = japan
}
/// Initializes this model from a given payload. /// Initializes this model from a given payload.
/// - Parameter payload: A payload that contains the values for the model. /// - Parameter payload: A payload that contains the values for the model.
init(_ payload: Components.Schemas.AmiiboRelease) { init(_ payload: Components.Schemas.AmiiboRelease) {
@@ -14,18 +14,24 @@
extension Amiibo { extension Amiibo {
/// A model that represents the usage of an amiibo within a certain game. /// A model that represents the usage of an amiibo within a certain game.
public struct Usage: Sendable, Hashable { public struct Usage: Sendable, Hashable, Codable {
// MARK: Properties // MARK: Properties
/// A description of how the amiibo is used within the game. /// A description of how the amiibo is used within the game.
public let explanation: String public let explanation: String
/// A flag that indicates whether the amiibo can save game data. /// Whether the amiibo can save game data.
public let isWriteable: Bool public let isWriteable: Bool
// MARK: Initializers // MARK: Initializers
/// Initializes this model.
package init(explanation: String, isWriteable: Bool) {
self.explanation = explanation
self.isWriteable = isWriteable
}
/// Initializes this model from a given payload. /// Initializes this model from a given payload.
/// - Parameter payload: A payload that contains the values for the model. /// - Parameter payload: A payload that contains the values for the model.
init(_ payload: Components.Schemas.AmiiboUsage) { init(_ payload: Components.Schemas.AmiiboUsage) {
@@ -24,12 +24,25 @@ public struct AmiiboSeries: KeyNameModel {
public let name: String public let name: String
// MARK: Initializers // MARK: Initializers
/// Initializes this model.
package init(key: String, name: String) {
self.key = key
self.name = name
}
/// Initializes this model from a given payload. /// Initializes this model from a given payload.
/// - Parameter payload: A payload that contains the values for the model. /// - Parameter payload: A payload that contains the values for the model.
init(_ payload: some KeyNamePayload) { init(_ payload: some KeyNamePayload) {
self.key = payload.key self.key = payload.key
self.name = payload.name self.name = payload.name
} }
// MARK: Computed
/// The ``key`` of this amiibo series.
public var id: String {
key
}
} }
@@ -24,12 +24,25 @@ public struct AmiiboType: KeyNameModel {
public let name: String public let name: String
// MARK: Initializers // MARK: Initializers
/// Initializes this model.
package init(key: String, name: String) {
self.key = key
self.name = name
}
/// Initializes this model from a given payload. /// Initializes this model from a given payload.
/// - Parameter payload: A payload that contains the values for the model. /// - Parameter payload: A payload that contains the values for the model.
init(_ payload: some KeyNamePayload) { init(_ payload: some KeyNamePayload) {
self.key = payload.key self.key = payload.key
self.name = payload.name self.name = payload.name
} }
// MARK: Computed
/// The ``key`` of this amiibo type.
public var id: String {
key
}
} }
@@ -25,11 +25,24 @@ public struct GameCharacter: KeyNameModel {
// MARK: Initializers // MARK: Initializers
/// Initializes this model.
package init(key: String, name: String) {
self.key = key
self.name = name
}
/// Initializes this model from a given payload. /// Initializes this model from a given payload.
/// - Parameter payload: A payload that contains the values for the model. /// - Parameter payload: A payload that contains the values for the model.
init(_ payload: some KeyNamePayload) { init(_ payload: some KeyNamePayload) {
self.key = payload.key self.key = payload.key
self.name = payload.name self.name = payload.name
} }
// MARK: Computed
/// The ``key`` of this game character.
public var id: String {
key
}
} }
@@ -24,12 +24,25 @@ public struct GameSeries: KeyNameModel {
public let name: String public let name: String
// MARK: Initializers // MARK: Initializers
/// Initializes this model.
package init(key: String, name: String) {
self.key = key
self.name = name
}
/// Initializes this model from a given payload. /// Initializes this model from a given payload.
/// - Parameter payload: A payload that contains the values for the model. /// - Parameter payload: A payload that contains the values for the model.
init(_ payload: some KeyNamePayload) { init(_ payload: some KeyNamePayload) {
self.key = payload.key self.key = payload.key
self.name = payload.name self.name = payload.name
} }
// MARK: Computed
/// The ``key`` of this game series.
public var id: String {
key
}
} }
@@ -16,44 +16,44 @@ import Foundation
/// A protocol that defines a client that fetches data from the Amiibo API. /// A protocol that defines a client that fetches data from the Amiibo API.
/// ///
/// ``AmiiboLiveClient`` is the default implementation. Conform to this protocol to provide another one, such as a mock for tests. Conforming types must be `Sendable`. /// ``AmiiboLiveClient`` is the default implementation; conform to provide another, such as a mock. Conforming types must be `Sendable`.
public protocol AmiiboClient: Sendable { public protocol AmiiboClient: Sendable {
// MARK: Functions // MARK: Functions
/// Gets a list of amiibo items based on a given filter. /// Gets a list of amiibo items based on a given filter.
/// - Parameter filter: A filter to remove unwanted items from the result. /// - Parameter filter: A filter for the result.
/// - Returns: A list of filtered amiibo items. /// - Returns: A list of filtered amiibo items.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result. /// - Throws: An ``AmiiboServiceError`` if the call fails.
func getAmiibos(by filter: AmiiboFilter) async throws(AmiiboServiceError) -> [Amiibo] func getAmiibos(by filter: AmiiboFilter) async throws(AmiiboServiceError) -> [Amiibo]
/// Gets a list of amiibo series based on a given filter. /// Gets a list of amiibo series based on a given filter.
/// - Parameter filter: A filter to remove unwanted items from the result. /// - Parameter filter: A filter for the result.
/// - Returns: A list of filtered amiibo series. /// - Returns: A list of filtered amiibo series.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result. /// - Throws: An ``AmiiboServiceError`` if the call fails.
func getAmiiboSeries(by filter: AmiiboSeriesFilter) async throws(AmiiboServiceError) -> [AmiiboSeries] func getAmiiboSeries(by filter: AmiiboSeriesFilter) async throws(AmiiboServiceError) -> [AmiiboSeries]
/// Gets a list of amiibo types based on a given filter. /// Gets a list of amiibo types based on a given filter.
/// - Parameter filter: A filter to remove unwanted items from the result. /// - Parameter filter: A filter for the result.
/// - Returns: A list of filtered amiibo types. /// - Returns: A list of filtered amiibo types.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result. /// - Throws: An ``AmiiboServiceError`` if the call fails.
func getAmiiboTypes(by filter: AmiiboTypeFilter) async throws(AmiiboServiceError) -> [AmiiboType] func getAmiiboTypes(by filter: AmiiboTypeFilter) async throws(AmiiboServiceError) -> [AmiiboType]
/// Gets a list of game characters based on a given filter. /// Gets a list of game characters based on a given filter.
/// - Parameter filter: A filter to remove unwanted items from the result. /// - Parameter filter: A filter for the result.
/// - Returns: A list of filtered game characters. /// - Returns: A list of filtered game characters.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result. /// - Throws: An ``AmiiboServiceError`` if the call fails.
func getGameCharacters(by filter: GameCharacterFilter) async throws(AmiiboServiceError) -> [GameCharacter] func getGameCharacters(by filter: GameCharacterFilter) async throws(AmiiboServiceError) -> [GameCharacter]
/// Gets a list of game series based on a given filter. /// Gets a list of game series based on a given filter.
/// - Parameter filter: A filter to remove unwanted items from the result. /// - Parameter filter: A filter for the result.
/// - Returns: A list of filtered game series. /// - Returns: A list of filtered game series.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result. /// - Throws: An ``AmiiboServiceError`` if the call fails.
func getGameSeries(by filter: GameSeriesFilter) async throws(AmiiboServiceError) -> [GameSeries] func getGameSeries(by filter: GameSeriesFilter) async throws(AmiiboServiceError) -> [GameSeries]
/// Gets the date when the data was last updated. /// Gets the date when the data was last updated.
/// - Returns: A last updated date, decoded as UTC. /// - Returns: A last updated date, decoded as UTC.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result. /// - Throws: An ``AmiiboServiceError`` if the call fails.
func getLastUpdated() async throws(AmiiboServiceError) -> Date func getLastUpdated() async throws(AmiiboServiceError) -> Date
} }
@@ -16,7 +16,7 @@ import Foundation
/// The entry point for fetching data from the Amiibo API. /// The entry point for fetching data from the Amiibo API.
/// ///
/// This service forwards every call to the ``AmiiboClient`` passed at initialization, which defaults to ``AmiiboLiveClient``. It is `Sendable`, so you can share an instance across concurrency domains. /// It forwards every call to the ``AmiiboClient`` given at initialization, which defaults to ``AmiiboLiveClient``. Instances are `Sendable`.
public struct AmiiboService: Sendable { public struct AmiiboService: Sendable {
// MARK: Properties // MARK: Properties
@@ -35,9 +35,9 @@ public struct AmiiboService: Sendable {
// MARK: Functions // MARK: Functions
/// Gets a list of amiibo items based on a given filter. /// Gets a list of amiibo items based on a given filter.
/// - Parameter filter: A filter to remove unwanted items from the result. /// - Parameter filter: A filter for the result.
/// - Returns: A list of filtered amiibo items. /// - Returns: A list of filtered amiibo items.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result. /// - Throws: An ``AmiiboServiceError`` if the call fails.
public func getAmiibos( public func getAmiibos(
_ filter: AmiiboFilter = .init() _ filter: AmiiboFilter = .init()
) async throws(AmiiboServiceError) -> [Amiibo] { ) async throws(AmiiboServiceError) -> [Amiibo] {
@@ -45,9 +45,9 @@ public struct AmiiboService: Sendable {
} }
/// Gets a list of amiibo series based on a given filter. /// Gets a list of amiibo series based on a given filter.
/// - Parameter filter: A filter to remove unwanted items from the result. /// - Parameter filter: A filter for the result.
/// - Returns: A list of filtered amiibo series. /// - Returns: A list of filtered amiibo series.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result. /// - Throws: An ``AmiiboServiceError`` if the call fails.
public func getAmiiboSeries( public func getAmiiboSeries(
_ filter: AmiiboSeriesFilter = .init() _ filter: AmiiboSeriesFilter = .init()
) async throws(AmiiboServiceError) -> [AmiiboSeries] { ) async throws(AmiiboServiceError) -> [AmiiboSeries] {
@@ -55,9 +55,9 @@ public struct AmiiboService: Sendable {
} }
/// Gets a list of amiibo types based on a given filter. /// Gets a list of amiibo types based on a given filter.
/// - Parameter filter: A filter to remove unwanted items from the result. /// - Parameter filter: A filter for the result.
/// - Returns: A list of filtered amiibo types. /// - Returns: A list of filtered amiibo types.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result. /// - Throws: An ``AmiiboServiceError`` if the call fails.
public func getAmiiboTypes( public func getAmiiboTypes(
_ filter: AmiiboTypeFilter = .init() _ filter: AmiiboTypeFilter = .init()
) async throws(AmiiboServiceError) -> [AmiiboType] { ) async throws(AmiiboServiceError) -> [AmiiboType] {
@@ -65,9 +65,9 @@ public struct AmiiboService: Sendable {
} }
/// Gets a list of game characters based on a given filter. /// Gets a list of game characters based on a given filter.
/// - Parameter filter: A filter to remove unwanted items from the result. /// - Parameter filter: A filter for the result.
/// - Returns: A list of filtered game characters. /// - Returns: A list of filtered game characters.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result. /// - Throws: An ``AmiiboServiceError`` if the call fails.
public func getGameCharacters( public func getGameCharacters(
_ filter: GameCharacterFilter = .init() _ filter: GameCharacterFilter = .init()
) async throws(AmiiboServiceError) -> [GameCharacter] { ) async throws(AmiiboServiceError) -> [GameCharacter] {
@@ -75,9 +75,9 @@ public struct AmiiboService: Sendable {
} }
/// Gets a list of game series based on a given filter. /// Gets a list of game series based on a given filter.
/// - Parameter filter: A filter to remove unwanted items from the result. /// - Parameter filter: A filter for the result.
/// - Returns: A list of filtered game series. /// - Returns: A list of filtered game series.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result. /// - Throws: An ``AmiiboServiceError`` if the call fails.
public func getGameSeries( public func getGameSeries(
_ filter: GameSeriesFilter = .init() _ filter: GameSeriesFilter = .init()
) async throws(AmiiboServiceError) -> [GameSeries] { ) async throws(AmiiboServiceError) -> [GameSeries] {
@@ -86,7 +86,7 @@ public struct AmiiboService: Sendable {
/// Gets the date when the data was last updated. /// Gets the date when the data was last updated.
/// - Returns: A last updated date, decoded as UTC. /// - Returns: A last updated date, decoded as UTC.
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result. /// - Throws: An ``AmiiboServiceError`` if the call fails.
public func getLastUpdated() async throws(AmiiboServiceError) -> Date { public func getLastUpdated() async throws(AmiiboServiceError) -> Date {
try await client.getLastUpdated() try await client.getLastUpdated()
} }
@@ -0,0 +1,78 @@
// ===----------------------------------------------------------------------===
//
// This source file is part of the Amiibo Service open source project
//
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
// Licensed under Apache license v2.0
//
// See LICENSE for license information
// See CONTRIBUTORS for the list of Amiibo Service project authors
//
// SPDX-License-Identifier: Apache-2.0
//
// ===----------------------------------------------------------------------===
@testable import AmiiboService
import Foundation
import Testing
@Suite("ISO Date Time Transcoder")
struct ISODateTimeTranscoderTests {
// MARK: Properties
private let transcoder = ISODateTimeTranscoder()
// MARK: Decode tests
@Test("decodes a timestamp as UTC")
func decodesTimestamp() throws {
// GIVEN
let string = "2026-07-24T12:34:56.123000"
// WHEN
let date = try transcoder.decode(string)
// THEN
#expect(abs(date.timeIntervalSince(.utc(2026, 7, 24, 12, 34, 56)) - 0.123) < 0.001)
}
@Test("decodes a date-only string as midnight UTC")
func decodesDate() throws {
// GIVEN
let string = "2014-11-21"
// WHEN
let date = try transcoder.decode(string)
// THEN
#expect(date == .utc(2014, 11, 21))
}
@Test("throws a decoding error for an unsupported string", arguments: [
"", "2014-11", "2014-11-21T12:34:56", "2014-11-21T12:34:56Z", "21/11/2014", "yesterday"
])
func throwsForUnsupportedString(string: String) {
// GIVEN
// WHEN
// THEN
#expect(throws: DecodingError.self) {
try transcoder.decode(string)
}
}
// MARK: Encode tests
@Test("encodes a date as a timestamp")
func encodesTimestamp() throws {
// GIVEN
let date: Date = .utc(2026, 7, 24, 12, 34, 56)
// WHEN
let string = try transcoder.encode(date)
// THEN
#expect(string == "2026-07-24T12:34:56.000000")
}
}
@@ -14,6 +14,7 @@
@testable import AmiiboService @testable import AmiiboService
import Foundation import Foundation
import HTTPTypes
import Testing import Testing
@Suite("Amiibo Live Client") @Suite("Amiibo Live Client")
@@ -42,5 +43,444 @@ struct AmiiboLiveClientTests {
// THEN // THEN
#expect(url == expected) #expect(url == expected)
} }
// MARK: Error mapping tests
@Test(
"maps an error thrown by the transport to the matching service error",
arguments: zip(
TransportErrors.thrown,
TransportErrors.expected
)
)
func mapsTransportError(
thrown: any Error,
expected: AmiiboServiceError
) async {
// GIVEN
let client = AmiiboLiveClient(transport: ThrowingTransport(error: thrown))
// WHEN
// THEN
await #expect(throws: expected) {
try await client.getAmiibos(by: .init())
}
}
@Test(
"maps a response status to the matching service error",
arguments: zip(
Responses.failing,
Responses.expected
)
)
func mapsResponseStatus(
response: (status: Int, json: String?),
expected: AmiiboServiceError
) async {
// GIVEN
let client = AmiiboLiveClient(transport: StubTransport(
status: .init(code: response.status),
json: response.json
))
// WHEN
// THEN
await #expect(throws: expected) {
try await client.getAmiibos(by: .init())
}
}
// MARK: Get Amiibos tests
@Test("returns amiibos sorted by identifier")
func getAmiibosSorted() async throws {
// GIVEN
let client = AmiiboLiveClient(transport: StubTransport(status: .ok, json: JSON.amiibos))
// WHEN
let amiibos = try await client.getAmiibos(by: .init())
// THEN
#expect(amiibos.map(\.identifier) == ["0000000000000002", "0100000000040002"])
#expect(amiibos.map(\.name) == ["Mario", "Zelda"])
}
@Test("returns a single amiibo when the response holds an object")
func getAmiibosSingle() async throws {
// GIVEN
let client = AmiiboLiveClient(transport: StubTransport(status: .ok, json: JSON.amiibo))
// WHEN
let amiibos = try await client.getAmiibos(by: .init(identifier: "0100000000040002"))
let amiibo = try #require(amiibos.first)
// THEN
#expect(amiibos.count == 1)
#expect(amiibo.head == "01000000")
#expect(amiibo.tail == "00040002")
#expect(amiibo.name == "Zelda")
#expect(amiibo.type == "Figure")
#expect(amiibo.series == "Super Smash Bros.")
#expect(amiibo.gameCharacter == "Zelda")
#expect(amiibo.gameSeries == "The Legend of Zelda")
#expect(amiibo.imageURL?.host() == "example.com")
#expect(amiibo.platform == nil)
}
@Test("returns no amiibos when the response holds null")
func getAmiibosNull() async throws {
// GIVEN
let client = AmiiboLiveClient(transport: StubTransport(status: .ok, json: JSON.amiibosNull))
// WHEN
let amiibos = try await client.getAmiibos(by: .init(identifier: "0000000000000000"))
// THEN
#expect(amiibos.isEmpty)
}
@Test("returns no amiibos when the response holds an empty list")
func getAmiibosEmpty() async throws {
// GIVEN
let client = AmiiboLiveClient(transport: StubTransport(status: .ok, json: JSON.amiibosEmpty))
// WHEN
let amiibos = try await client.getAmiibos(by: .init(name: "Something"))
// THEN
#expect(amiibos.isEmpty)
}
@Test("decodes release dates as midnight UTC, and missing or null ones as nil")
func getAmiibosRelease() async throws {
// GIVEN
let client = AmiiboLiveClient(transport: StubTransport(status: .ok, json: JSON.amiibos))
// WHEN
let amiibos = try await client.getAmiibos(by: .init())
let mario = try #require(amiibos.first)
let zelda = try #require(amiibos.last)
// THEN
#expect(mario.release.america == .utc(2014, 11, 21))
#expect(mario.release.australia == .utc(2014, 11, 29))
#expect(mario.release.europe == .utc(2014, 11, 28))
#expect(mario.release.japan == .utc(2014, 12, 6))
#expect(zelda.release.australia == nil)
#expect(zelda.release.japan == nil)
}
@Test("maps related games and usages into the platform")
func getAmiibosPlatform() async throws {
// GIVEN
let client = AmiiboLiveClient(transport: StubTransport(status: .ok, json: JSON.amiiboWithGames))
// WHEN
let amiibos = try await client.getAmiibos(by: .init(showUsage: true))
let platform = try #require(amiibos.first?.platform)
let game = try #require(platform.switch.first)
// THEN
#expect(platform.switch.count == 1)
#expect(platform.switch2.isEmpty)
#expect(platform.threeDS.isEmpty)
#expect(platform.wiiU.count == 1)
#expect(game.identifiers == ["01007EF00011E000"])
#expect(game.name == "The Legend of Zelda: Breath of the Wild")
#expect(game.usages == [.init(explanation: "Spawns a random selection of items.", isWriteable: false)])
#expect(platform.wiiU.first?.usages == nil)
}
@Test("encodes the amiibo filter as query parameters")
func getAmiibosQuery() async throws {
// GIVEN
let client = AmiiboLiveClient(transport: StubTransport { request in
let path = request.path ?? ""
#expect(path.hasPrefix("/amiibo?"))
#expect(path.contains("id=0100000000040002"))
#expect(path.contains("head=01000000"))
#expect(path.contains("tail=00040002"))
#expect(path.contains("name=zelda"))
#expect(path.contains("type=0x00"))
#expect(path.contains("amiiboSeries=0x00"))
#expect(path.contains("character=0x0100"))
#expect(path.contains("gameseries=0x010"))
#expect(path.contains("showgames=true"))
#expect(path.contains("showusage=false"))
return StubTransport.response(status: .ok, json: JSON.amiibosEmpty)
})
// WHEN
// THEN
_ = try await client.getAmiibos(by: .init(
head: "01000000",
tail: "00040002",
identifier: "0100000000040002",
name: "zelda",
type: "0x00",
series: "0x00",
gameCharacter: "0x0100",
gameSeries: "0x010",
showGames: true,
showUsage: false
))
}
@Test("omits nil filter values from the query")
func getAmiibosEmptyQuery() async throws {
// GIVEN
let client = AmiiboLiveClient(transport: StubTransport { request in
#expect(request.path == "/amiibo")
return StubTransport.response(status: .ok, json: JSON.amiibosEmpty)
})
// WHEN
// THEN
_ = try await client.getAmiibos(by: .init())
}
// MARK: Key-name endpoints tests
@Test("returns amiibo series sorted by key")
func getAmiiboSeriesSorted() async throws {
// GIVEN
let client = AmiiboLiveClient(transport: StubTransport(status: .ok, json: JSON.keyNameList))
// WHEN
let series = try await client.getAmiiboSeries(by: .init())
// THEN
#expect(series == [.init(key: "0x00", name: "Second"), .init(key: "0x01", name: "First")])
}
@Test("returns a single amiibo series when the response holds an object")
func getAmiiboSeriesSingle() async throws {
// GIVEN
let client = AmiiboLiveClient(transport: StubTransport { request in
#expect(request.path == "/amiiboseries?key=0x01")
return StubTransport.response(status: .ok, json: JSON.keyName)
})
// WHEN
let series = try await client.getAmiiboSeries(by: .init(key: "0x01"))
// THEN
#expect(series == [.init(key: "0x01", name: "First")])
}
@Test("returns amiibo types sorted by key")
func getAmiiboTypesSorted() async throws {
// GIVEN
let client = AmiiboLiveClient(transport: StubTransport { request in
#expect(request.path == "/type")
return StubTransport.response(status: .ok, json: JSON.keyNameList)
})
// WHEN
let types = try await client.getAmiiboTypes(by: .init())
// THEN
#expect(types == [.init(key: "0x00", name: "Second"), .init(key: "0x01", name: "First")])
}
@Test("returns game characters sorted by key")
func getGameCharactersSorted() async throws {
// GIVEN
let client = AmiiboLiveClient(transport: StubTransport { request in
#expect(request.path == "/character?name=First")
return StubTransport.response(status: .ok, json: JSON.keyNameList)
})
// WHEN
let characters = try await client.getGameCharacters(by: .init(name: "First"))
// THEN
#expect(characters == [.init(key: "0x00", name: "Second"), .init(key: "0x01", name: "First")])
}
@Test("returns game series sorted by key")
func getGameSeriesSorted() async throws {
// GIVEN
let client = AmiiboLiveClient(transport: StubTransport { request in
#expect(request.path == "/gameseries")
return StubTransport.response(status: .ok, json: JSON.keyNameList)
})
// WHEN
let series = try await client.getGameSeries(by: .init())
// THEN
#expect(series == [.init(key: "0x00", name: "Second"), .init(key: "0x01", name: "First")])
}
@Test("throws notFound when a key-name endpoint matches nothing")
func getKeyNameNotFound() async {
// GIVEN
let client = AmiiboLiveClient(transport: StubTransport(status: .notFound, json: JSON.notFound))
// WHEN
// THEN
await #expect(throws: AmiiboServiceError.notFound) {
try await client.getGameSeries(by: .init(key: "0xffff"))
}
}
// MARK: Get Last Updated tests
@Test("returns the last updated timestamp as UTC")
func getLastUpdated() async throws {
// GIVEN
let client = AmiiboLiveClient(transport: StubTransport { request in
#expect(request.path == "/lastupdated")
return StubTransport.response(status: .ok, json: JSON.lastUpdated)
})
// WHEN
let lastUpdated = try await client.getLastUpdated()
// THEN
#expect(lastUpdated == .utc(2026, 7, 24, 12, 34, 56))
}
@Test("throws notAvailable when the last updated endpoint fails")
func getLastUpdatedNotAvailable() async {
// GIVEN
let client = AmiiboLiveClient(transport: StubTransport(status: .internalServerError))
// WHEN
// THEN
await #expect(throws: AmiiboServiceError.notAvailable) {
try await client.getLastUpdated()
}
}
}
// MARK: - Arguments
private enum TransportErrors {
/// Errors thrown by the transport.
static let thrown: [any Error] = [
CancellationError(),
URLError(.cancelled),
URLError(.cannotParseResponse),
URLError(.notConnectedToInternet),
URLError(.timedOut),
URLError(.badURL)
]
/// The service error expected for each thrown error.
static let expected: [AmiiboServiceError] = [
.cancelled,
.cancelled,
.decoding,
.notAvailable,
.notAvailable,
.unknown(String(describing: URLError(.badURL)))
]
}
private enum Responses {
/// Failing responses, with a body where the specification documents one.
static let failing: [(status: Int, json: String?)] = [
(400, JSON.badRequest),
(404, JSON.notFound),
(500, nil),
(418, nil),
(200, "not json")
]
/// The service error expected for each failing response.
static let expected: [AmiiboServiceError] = [
.badRequest,
.notFound,
.notAvailable,
.undocumented(418),
.decoding
]
}
// MARK: - Payloads
private enum JSON {
/// Two amiibos in reverse identifier order; the first lacks `au` and has a null `jp`.
static let amiibos = """
{"amiibo": [
{
"amiiboSeries": "Super Smash Bros.", "character": "Zelda", "gameSeries": "The Legend of Zelda",
"head": "01000000", "tail": "00040002", "name": "Zelda", "type": "Figure",
"image": "https://example.com/zelda.png",
"release": {"eu": "2014-11-28", "jp": null, "na": "2014-11-21"}
},
{
"amiiboSeries": "Super Smash Bros.", "character": "Mario", "gameSeries": "Super Mario",
"head": "00000000", "tail": "00000002", "name": "Mario", "type": "Figure",
"image": "https://example.com/mario.png",
"release": {"au": "2014-11-29", "eu": "2014-11-28", "jp": "2014-12-06", "na": "2014-11-21"}
}
]}
"""
/// A single amiibo, as returned for an `id` filter.
static let amiibo = """
{"amiibo": {
"amiiboSeries": "Super Smash Bros.", "character": "Zelda", "gameSeries": "The Legend of Zelda",
"head": "01000000", "tail": "00040002", "name": "Zelda", "type": "Figure",
"image": "https://example.com/zelda.png",
"release": {"au": "2014-12-04", "eu": "2014-11-28", "jp": "2014-12-06", "na": "2014-11-21"}
}}
"""
/// An amiibo with Switch and Wii U games, an empty 3DS list, and no Switch 2 key.
static let amiiboWithGames = """
{"amiibo": [{
"amiiboSeries": "Super Smash Bros.", "character": "Zelda", "gameSeries": "The Legend of Zelda",
"head": "01000000", "tail": "00040002", "name": "Zelda", "type": "Figure",
"image": "https://example.com/zelda.png",
"release": {"na": "2014-11-21"},
"games3DS": [],
"gamesSwitch": [{
"gameID": ["01007EF00011E000"],
"gameName": "The Legend of Zelda: Breath of the Wild",
"amiiboUsage": [{"Usage": "Spawns a random selection of items.", "write": false}]
}],
"gamesWiiU": [{
"gameID": ["0005000010145000"],
"gameName": "Super Smash Bros. for Wii U"
}]
}]}
"""
/// The response for an `id` filter that matches nothing.
static let amiibosNull = """
{"amiibo": null}
"""
/// The response for any other filter that matches nothing.
static let amiibosEmpty = """
{"amiibo": []}
"""
/// Two key-name items in reverse key order.
static let keyNameList = """
{"amiibo": [{"key": "0x01", "name": "First"}, {"key": "0x00", "name": "Second"}]}
"""
/// A single key-name item, as returned for a `key` filter.
static let keyName = """
{"amiibo": {"key": "0x01", "name": "First"}}
"""
/// The last updated timestamp.
static let lastUpdated = """
{"lastUpdated": "2026-07-24T12:34:56.000000"}
"""
/// The body of a 400 response.
static let badRequest = """
{"code": 400, "error": "Bad request."}
"""
/// The body of a 404 response.
static let notFound = """
{"code": 404, "error": "Not found."}
"""
} }
@@ -0,0 +1,61 @@
// ===----------------------------------------------------------------------===
//
// This source file is part of the Amiibo Service open source project
//
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
// Licensed under Apache license v2.0
//
// See LICENSE for license information
// See CONTRIBUTORS for the list of Amiibo Service project authors
//
// SPDX-License-Identifier: Apache-2.0
//
// ===----------------------------------------------------------------------===
import AmiiboService
import Testing
@Suite("Filter conformances")
struct FilterConformanceTests {
// MARK: Equatable tests
@Test("compares amiibo filters by value")
func amiiboFilterEquality() {
// GIVEN
// WHEN
// THEN
#expect(AmiiboFilter() == AmiiboFilter())
#expect(AmiiboFilter(name: "zelda") == AmiiboFilter(name: "zelda"))
#expect(AmiiboFilter(name: "zelda") != AmiiboFilter(name: "mario"))
#expect(AmiiboFilter() != AmiiboFilter(showGames: true))
}
@Test("compares key-name filters by value")
func keyNameFilterEquality() {
// GIVEN
// WHEN
// THEN
#expect(AmiiboSeriesFilter() == AmiiboSeriesFilter())
#expect(AmiiboSeriesFilter(key: "0x01") == AmiiboSeriesFilter(key: "0x01"))
#expect(AmiiboSeriesFilter(key: "0x01") != AmiiboSeriesFilter(name: "0x01"))
#expect(AmiiboTypeFilter(name: "Card") != AmiiboTypeFilter(name: "Figure"))
#expect(GameCharacterFilter(key: "0x0100") != GameCharacterFilter())
#expect(GameSeriesFilter(name: "Pikmin") == GameSeriesFilter(name: "Pikmin"))
}
// MARK: Hashable tests
@Test("hashes equal filters alike")
func filterHashing() {
// GIVEN
let amiiboFilters: Set = [AmiiboFilter(name: "zelda"), AmiiboFilter(name: "zelda"), AmiiboFilter(name: "mario")]
let seriesFilters: Set = [AmiiboSeriesFilter(key: "0x01"), AmiiboSeriesFilter(key: "0x01"), AmiiboSeriesFilter()]
// WHEN
// THEN
#expect(amiiboFilters.count == 2)
#expect(seriesFilters.count == 2)
}
}
@@ -0,0 +1,84 @@
// ===----------------------------------------------------------------------===
//
// This source file is part of the Amiibo Service open source project
//
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
// Licensed under Apache license v2.0
//
// See LICENSE for license information
// See CONTRIBUTORS for the list of Amiibo Service project authors
//
// SPDX-License-Identifier: Apache-2.0
//
// ===----------------------------------------------------------------------===
import AmiiboService
import Foundation
import Testing
@Suite("Model conformances")
struct ModelConformanceTests {
// MARK: Identifiable tests
@Test("identifies an amiibo by its identifier")
func amiiboID() {
// GIVEN
let amiibos = Fixtures.amiibos
// WHEN
// THEN
#expect(amiibos.map(\.id) == amiibos.map(\.identifier))
}
@Test("identifies key-name models by their keys")
func keyNameIDs() {
// GIVEN
// WHEN
// THEN
#expect(Fixtures.amiiboSeries.map(\.id) == Fixtures.amiiboSeries.map(\.key))
#expect(Fixtures.amiiboTypes.map(\.id) == Fixtures.amiiboTypes.map(\.key))
#expect(Fixtures.gameCharacters.map(\.id) == Fixtures.gameCharacters.map(\.key))
#expect(Fixtures.gameSeries.map(\.id) == Fixtures.gameSeries.map(\.key))
}
// MARK: Codable tests
@Test("round-trips amiibos through JSON")
func amiibosRoundTrip() throws {
// GIVEN
let amiibos = Fixtures.amiibos
// WHEN
let decoded = try roundTrip(amiibos)
// THEN
#expect(decoded == amiibos)
#expect(decoded.first?.platform?.switch.first?.usages?.isEmpty == false)
}
@Test("round-trips key-name models through JSON")
func keyNameRoundTrip() throws {
// GIVEN
// WHEN
// THEN
#expect(try roundTrip(Fixtures.amiiboSeries) == Fixtures.amiiboSeries)
#expect(try roundTrip(Fixtures.amiiboTypes) == Fixtures.amiiboTypes)
#expect(try roundTrip(Fixtures.gameCharacters) == Fixtures.gameCharacters)
#expect(try roundTrip(Fixtures.gameSeries) == Fixtures.gameSeries)
}
}
// MARK: - Helpers
private extension ModelConformanceTests {
// MARK: Functions
/// Encodes a value to JSON and decodes it back.
func roundTrip<Value: Codable>(_ value: Value) throws -> Value {
try JSONDecoder().decode(Value.self, from: JSONEncoder().encode(value))
}
}
@@ -32,7 +32,21 @@ struct AmiiboServiceMockTests {
// THEN // THEN
#expect(amiibos.isEmpty) #expect(amiibos.isEmpty)
} }
@Test("returns amiibos when mock provides a list")
func getAmiibosList() async throws {
// GIVEN
let service = AmiiboService(client: AmiiboMockClient(amiibos: Fixtures.amiibos))
// WHEN
let amiibos = try await service.getAmiibos()
// THEN
#expect(amiibos == Fixtures.amiibos)
#expect(amiibos.first?.identifier == "0100000000040002")
#expect(amiibos.first?.imageURL != nil)
}
@Test("throws notFound when mock provides no amiibos") @Test("throws notFound when mock provides no amiibos")
func getAmiibosNotFound() async { func getAmiibosNotFound() async {
// GIVEN // GIVEN
@@ -70,7 +84,19 @@ struct AmiiboServiceMockTests {
// THEN // THEN
#expect(amiiboSeries.isEmpty) #expect(amiiboSeries.isEmpty)
} }
@Test("returns amiibo series when mock provides a list")
func getAmiiboSeriesList() async throws {
// GIVEN
let service = AmiiboService(client: AmiiboMockClient(amiiboSeries: Fixtures.amiiboSeries))
// WHEN
let amiiboSeries = try await service.getAmiiboSeries()
// THEN
#expect(amiiboSeries == Fixtures.amiiboSeries)
}
@Test("throws notFound when mock provides no amiibo series") @Test("throws notFound when mock provides no amiibo series")
func getAmiiboSeriesNotFound() async { func getAmiiboSeriesNotFound() async {
// GIVEN // GIVEN
@@ -108,7 +134,19 @@ struct AmiiboServiceMockTests {
// THEN // THEN
#expect(amiiboTypes.isEmpty) #expect(amiiboTypes.isEmpty)
} }
@Test("returns amiibo types when mock provides a list")
func getAmiiboTypesList() async throws {
// GIVEN
let service = AmiiboService(client: AmiiboMockClient(amiiboTypes: Fixtures.amiiboTypes))
// WHEN
let amiiboTypes = try await service.getAmiiboTypes()
// THEN
#expect(amiiboTypes == Fixtures.amiiboTypes)
}
@Test("throws notFound when mock provides no amiibo types") @Test("throws notFound when mock provides no amiibo types")
func getAmiiboTypesNotFound() async { func getAmiiboTypesNotFound() async {
// GIVEN // GIVEN
@@ -146,7 +184,19 @@ struct AmiiboServiceMockTests {
// THEN // THEN
#expect(gameCharacters.isEmpty) #expect(gameCharacters.isEmpty)
} }
@Test("returns game characters when mock provides a list")
func getGameCharactersList() async throws {
// GIVEN
let service = AmiiboService(client: AmiiboMockClient(gameCharacters: Fixtures.gameCharacters))
// WHEN
let gameCharacters = try await service.getGameCharacters()
// THEN
#expect(gameCharacters == Fixtures.gameCharacters)
}
@Test("throws notFound when mock provides no game characters") @Test("throws notFound when mock provides no game characters")
func getGameCharactersNotFound() async { func getGameCharactersNotFound() async {
// GIVEN // GIVEN
@@ -184,7 +234,19 @@ struct AmiiboServiceMockTests {
// THEN // THEN
#expect(gameSeries.isEmpty) #expect(gameSeries.isEmpty)
} }
@Test("returns game series when mock provides a list")
func getGameSeriesList() async throws {
// GIVEN
let service = AmiiboService(client: AmiiboMockClient(gameSeries: Fixtures.gameSeries))
// WHEN
let gameSeries = try await service.getGameSeries()
// THEN
#expect(gameSeries == Fixtures.gameSeries)
}
@Test("throws notFound when mock provides no game series") @Test("throws notFound when mock provides no game series")
func getGameSeriesNotFound() async { func getGameSeriesNotFound() async {
// GIVEN // GIVEN
@@ -0,0 +1,44 @@
// ===----------------------------------------------------------------------===
//
// This source file is part of the Amiibo Service open source project
//
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
// Licensed under Apache license v2.0
//
// See LICENSE for license information
// See CONTRIBUTORS for the list of Amiibo Service project authors
//
// SPDX-License-Identifier: Apache-2.0
//
// ===----------------------------------------------------------------------===
import Foundation
extension Date {
// MARK: Functions
/// Makes a date from UTC components.
static func utc(
_ year: Int,
_ month: Int,
_ day: Int,
_ hour: Int = 0,
_ minute: Int = 0,
_ second: Int = 0
) -> Date {
var calendar = Calendar(identifier: .gregorian)
calendar.timeZone = .init(secondsFromGMT: 0)!
return calendar.date(from: .init(
year: year,
month: month,
day: day,
hour: hour,
minute: minute,
second: second
))!
}
}
@@ -0,0 +1,85 @@
// ===----------------------------------------------------------------------===
//
// This source file is part of the Amiibo Service open source project
//
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
// Licensed under Apache license v2.0
//
// See LICENSE for license information
// See CONTRIBUTORS for the list of Amiibo Service project authors
//
// SPDX-License-Identifier: Apache-2.0
//
// ===----------------------------------------------------------------------===
import AmiiboService
import Foundation
/// Ready-made models for testing purposes.
enum Fixtures {
/// Amiibo items; the first one has release dates and related games with usages.
static let amiibos: [Amiibo] = [
.init(
head: "01000000",
tail: "00040002",
name: "Zelda",
type: "Figure",
series: "Super Smash Bros.",
gameCharacter: "Zelda",
gameSeries: "The Legend of Zelda",
image: "https://raw.githubusercontent.com/N3evin/AmiiboAPI/master/images/icon_01000000-00040002.png",
release: .init(
america: Date(timeIntervalSince1970: 1_416_441_600),
australia: Date(timeIntervalSince1970: 1_417_564_800),
europe: Date(timeIntervalSince1970: 1_417_132_800),
japan: Date(timeIntervalSince1970: 1_417_564_800)
),
platform: .init(
switch: [
.init(
identifiers: ["01007EF00011E000"],
name: "The Legend of Zelda: Breath of the Wild",
usages: [.init(explanation: "Spawns a random selection of items.", isWriteable: false)]
)
],
wiiU: [
.init(
identifiers: ["0005000010145000"],
name: "Super Smash Bros. for Wii U",
usages: [.init(explanation: "Unlocks a figure player.", isWriteable: true)]
)
]
)
),
.init(
head: "00000000",
tail: "00000002",
name: "Mario",
type: "Figure",
series: "Super Smash Bros.",
gameCharacter: "Mario",
gameSeries: "Super Mario",
image: "https://raw.githubusercontent.com/N3evin/AmiiboAPI/master/images/icon_00000000-00000002.png"
)
]
/// Amiibo series.
static let amiiboSeries: [AmiiboSeries] = [
.init(key: "0x00", name: "Super Smash Bros."),
.init(key: "0x01", name: "Super Mario")
]
/// Amiibo types.
static let amiiboTypes: [AmiiboType] = [
.init(key: "0x00", name: "Figure"),
.init(key: "0x01", name: "Card")
]
/// Game characters.
static let gameCharacters: [GameCharacter] = [
.init(key: "0x0000", name: "Mario"),
.init(key: "0x0100", name: "Zelda")
]
/// Game series.
static let gameSeries: [GameSeries] = [
.init(key: "0x000", name: "Super Mario"),
.init(key: "0x010", name: "The Legend of Zelda")
]
}
@@ -0,0 +1,72 @@
// ===----------------------------------------------------------------------===
//
// This source file is part of the Amiibo Service open source project
//
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
// Licensed under Apache license v2.0
//
// See LICENSE for license information
// See CONTRIBUTORS for the list of Amiibo Service project authors
//
// SPDX-License-Identifier: Apache-2.0
//
// ===----------------------------------------------------------------------===
import Foundation
import HTTPTypes
import OpenAPIRuntime
/// A transport that answers every request with a canned response, for testing purposes.
struct StubTransport: ClientTransport {
// MARK: Type aliases
/// A closure that builds the response for a request.
typealias Handler = @Sendable (HTTPRequest) throws -> (HTTPResponse, HTTPBody?)
// MARK: Properties
/// The handler that builds the response.
private let handler: Handler
// MARK: Initializers
/// Initializes this transport with a response handler.
init(handler: @escaping Handler) {
self.handler = handler
}
/// Initializes this transport with a fixed response.
init(status: HTTPResponse.Status, json: String? = nil) {
self.init { _ in
Self.response(status: status, json: json)
}
}
// MARK: Functions
func send(
_ request: HTTPRequest,
body: HTTPBody?,
baseURL: URL,
operationID: String
) async throws -> (HTTPResponse, HTTPBody?) {
try handler(request)
}
/// Builds a response with a status and an optional JSON body.
static func response(
status: HTTPResponse.Status,
json: String? = nil
) -> (HTTPResponse, HTTPBody?) {
guard let json else {
return (.init(status: status), nil)
}
return (
.init(status: status, headerFields: [.contentType: "application/json"]),
.init(json)
)
}
}
@@ -0,0 +1,48 @@
// ===----------------------------------------------------------------------===
//
// This source file is part of the Amiibo Service open source project
//
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
// Licensed under Apache license v2.0
//
// See LICENSE for license information
// See CONTRIBUTORS for the list of Amiibo Service project authors
//
// SPDX-License-Identifier: Apache-2.0
//
// ===----------------------------------------------------------------------===
import Foundation
import HTTPTypes
import OpenAPIRuntime
/// A transport that throws a given error instead of sending the request, for testing purposes.
///
/// The error reaches the live client wrapped in a `ClientError`, as it would from a real transport.
struct ThrowingTransport: ClientTransport {
// MARK: Properties
/// The error to throw.
private let error: any Error
// MARK: Initializers
/// Initializes this transport.
/// - Parameter error: An error to throw.
init(error: any Error) {
self.error = error
}
// MARK: Functions
func send(
_ request: HTTPRequest,
body: HTTPBody?,
baseURL: URL,
operationID: String
) async throws -> (HTTPResponse, HTTPBody?) {
throw error
}
}
-9
View File
@@ -1,9 +0,0 @@
/*!
* This source file is part of the Swift.org open source project
*
* Copyright (c) 2021 Apple Inc. and the Swift project authors
* Licensed under Apache License v2.0 with Runtime Library Exception
*
* See https://swift.org/LICENSE.txt for license information
* See https://swift.org/CONTRIBUTORS.txt for Swift project authors
*/.badge[data-v-ffe39a30]{--badge-color:var(--color-badge-default);--badge-dark-color:var(--color-badge-dark-default);font-size:.7058823529rem;line-height:1.3333333333;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);display:inline-block;padding:2px 4px;white-space:nowrap;border-radius:var(--badge-border-radius,1px);border-style:var(--badge-border-style,none);border-width:var(--badge-border-width,1px);margin:auto;margin-inline-start:5px;color:var(--colors-badge-text,var(--color-badge-text));background-color:var(--badge-color)}@media screen{[data-color-scheme=dark] .badge[data-v-ffe39a30]{background-color:var(--badge-dark-color)}}@media screen and (prefers-color-scheme:dark){[data-color-scheme=auto] .badge[data-v-ffe39a30]{background-color:var(--badge-dark-color)}}.badge-deprecated[data-v-ffe39a30]{--badge-color:var(--color-badge-deprecated);--badge-dark-color:var(--color-badge-dark-deprecated)}.badge-beta[data-v-ffe39a30]{--badge-color:var(--color-badge-beta);--badge-dark-color:var(--color-badge-dark-beta)}[data-v-3a32ffd0] .code-listing{background:var(--background,var(--color-code-background));color:var(--text,var(--color-code-plain));border-color:var(--colors-grid,var(--color-grid));border-width:var(--code-border-width,1px);border-style:var(--code-border-style,solid)}[data-v-3a32ffd0] .code-listing pre{padding:var(--code-block-style-elements-padding)}[data-v-3a32ffd0] .code-listing pre>code{font-size:.8823529412rem;line-height:1.6666666667;font-weight:400;font-family:var(--typography-html-font-mono,Menlo,monospace)}[data-v-3a32ffd0] *+.code-listing,[data-v-3a32ffd0] *+.endpoint-example,[data-v-3a32ffd0] *+.inline-image-container,[data-v-3a32ffd0] *+aside,[data-v-3a32ffd0] *+figure,[data-v-3a32ffd0] .code-listing+*,[data-v-3a32ffd0] .endpoint-example+*,[data-v-3a32ffd0] .inline-image-container+*,[data-v-3a32ffd0] aside+*,[data-v-3a32ffd0] figure+*{margin-top:var(--spacing-stacked-margin-xlarge)}[data-v-3a32ffd0] *+dl,[data-v-3a32ffd0] dl+*{margin-top:var(--spacing-stacked-margin-large)}[data-v-3a32ffd0] img{display:block;margin:auto;max-width:100%}[data-v-3a32ffd0] ol,[data-v-3a32ffd0] ol li:not(:first-child),[data-v-3a32ffd0] ul,[data-v-3a32ffd0] ul li:not(:first-child){margin-top:var(--spacing-stacked-margin-large)}@media only screen and (max-width:735px){[data-v-3a32ffd0] ol,[data-v-3a32ffd0] ul{margin-left:1.25rem}}[data-v-3a32ffd0] dt:not(:first-child){margin-top:var(--spacing-stacked-margin-large)}[data-v-3a32ffd0] dd{margin-left:2em}.topic-icon-wrapper[data-v-58794252]{display:flex;align-items:center;justify-content:center;height:1.4705882353rem;flex:0 0 1.294rem;width:1.294rem;margin-inline-end:1rem}.topic-icon[data-v-58794252]{height:.8823529412rem;transform:scale(1);-webkit-transform:scale(1);overflow:visible}.topic-icon[data-v-58794252] img{margin:0;display:block;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.topic-icon.curly-brackets-icon[data-v-58794252]{height:1rem}.token-method[data-v-295ad0ff]{font-weight:700}.token-keyword[data-v-295ad0ff]{color:var(--syntax-keyword,var(--color-syntax-keywords))}.token-number[data-v-295ad0ff]{color:var(--syntax-number,var(--color-syntax-numbers))}.token-string[data-v-295ad0ff]{color:var(--syntax-string,var(--color-syntax-strings))}.attribute-link[data-v-295ad0ff],.token-attribute[data-v-295ad0ff]{color:var(--syntax-attribute,var(--color-syntax-keywords))}.token-internalParam[data-v-295ad0ff]{color:var(--color-syntax-param-internal-name)}.type-identifier-link[data-v-295ad0ff]{color:var(--syntax-type,var(--color-syntax-other-type-names))}.token-removed[data-v-295ad0ff]{background-color:var(--color-highlight-red)}.token-added[data-v-295ad0ff]{background-color:var(--color-highlight-green)}.decorated-title[data-v-2d744be4]{direction:ltr}.decorator[data-v-2d744be4],.label[data-v-2d744be4]{color:var(--colors-secondary-label,var(--color-secondary-label))}.label[data-v-2d744be4]{font-size:1rem;line-height:1.4705882353;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.empty-token[data-v-2d744be4]{font-size:0}.empty-token[data-v-2d744be4]:after{content:" ";font-size:1rem}.abstract[data-v-e1f11a1a],.link-block[data-v-e1f11a1a] .badge{margin-inline-start:2.294rem}.link-block .badge+.badge[data-v-e1f11a1a]{margin-inline-start:1rem}.link[data-v-e1f11a1a]{display:flex}.link-block .badge[data-v-e1f11a1a]{margin-top:.5rem}.link-block.has-inline-element[data-v-e1f11a1a]{display:flex;align-items:flex-start;flex-flow:row wrap}.link-block.has-inline-element .badge[data-v-e1f11a1a]{margin-inline-start:1rem;margin-top:0}.link-block .has-adjacent-elements[data-v-e1f11a1a]{padding-top:5px;padding-bottom:5px;display:inline-flex}.link-block[data-v-e1f11a1a],.link[data-v-e1f11a1a]{box-sizing:inherit}.link-block.changed[data-v-e1f11a1a],.link.changed[data-v-e1f11a1a]{padding-right:1rem;padding-left:2.1764705882rem;padding-top:8px;padding-bottom:8px;display:Line truncated
-9
View File
@@ -1,9 +0,0 @@
/*!
* This source file is part of the Swift.org open source project
*
* Copyright (c) 2021 Apple Inc. and the Swift project authors
* Licensed under Apache License v2.0 with Runtime Library Exception
*
* See https://swift.org/LICENSE.txt for license information
* See https://swift.org/CONTRIBUTORS.txt for Swift project authors
*/aside[data-v-50d24223]{-moz-column-break-inside:avoid;break-inside:avoid;border-radius:var(--aside-border-radius,var(--border-radius,4px));border-style:var(--aside-border-style,solid);border-block-width:var(--aside-border-width-block,0);border-inline-width:var(--aside-border-width-inline,6px 0);padding:.9411764706rem;text-align:start}aside .label[data-v-50d24223]{font-size:1rem;line-height:1.5294117647;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}aside .label+[data-v-50d24223]{margin-top:var(--spacing-stacked-margin-small)}aside.deprecated[data-v-50d24223]{background-color:var(--color-aside-deprecated-background);border-color:var(--color-aside-deprecated-border);box-shadow:0 0 0 0 var(--color-aside-deprecated-border) inset,0 0 0 0 var(--color-aside-deprecated-border)}aside.deprecated .label[data-v-50d24223]{color:var(--color-aside-deprecated)}aside.experiment[data-v-50d24223]{background-color:var(--color-aside-experiment-background);border-color:var(--color-aside-experiment-border);box-shadow:0 0 0 0 var(--color-aside-experiment-border) inset,0 0 0 0 var(--color-aside-experiment-border)}aside.experiment .label[data-v-50d24223]{color:var(--color-aside-experiment)}aside.important[data-v-50d24223]{background-color:var(--color-aside-important-background);border-color:var(--color-aside-important-border);box-shadow:0 0 0 0 var(--color-aside-important-border) inset,0 0 0 0 var(--color-aside-important-border)}aside.important .label[data-v-50d24223]{color:var(--color-aside-important)}aside.note[data-v-50d24223]{background-color:var(--color-aside-note-background);border-color:var(--color-aside-note-border);box-shadow:0 0 0 0 var(--color-aside-note-border) inset,0 0 0 0 var(--color-aside-note-border)}aside.note .label[data-v-50d24223]{color:var(--color-aside-note)}aside.tip[data-v-50d24223]{background-color:var(--color-aside-tip-background);border-color:var(--color-aside-tip-border);box-shadow:0 0 0 0 var(--color-aside-tip-border) inset,0 0 0 0 var(--color-aside-tip-border)}aside.tip .label[data-v-50d24223]{color:var(--color-aside-tip)}aside.warning[data-v-50d24223]{background-color:var(--color-aside-warning-background);border-color:var(--color-aside-warning-border);box-shadow:0 0 0 0 var(--color-aside-warning-border) inset,0 0 0 0 var(--color-aside-warning-border)}aside.warning .label[data-v-50d24223]{color:var(--color-aside-warning)}code[data-v-c21375ec]{direction:ltr}code[data-v-c21375ec]:before{content:attr(data-before-code)}code[data-v-c21375ec]:after{content:attr(data-after-code)}code[data-v-c21375ec]:after,code[data-v-c21375ec]:before{display:block;position:absolute;clip:rect(1px,1px,1px,1px);clip-path:inset(0 0 99.9% 99.9%);overflow:hidden;height:1px;width:1px;padding:0;border:0}.CopyIcon[data-v-5308ccb8]{opacity:.8}.CheckmarkIcon[data-v-4c718f32],.CrossIcon[data-v-27a90ea3]{opacity:1;stroke:currentColor}.swift-file-icon.file-icon[data-v-c01a6890]{height:1rem}.file-icon[data-v-7c381064]{position:relative;align-items:flex-end;height:24px;margin:0 .5rem 0 1rem}.filename[data-v-c8c40662]{color:var(--text,var(--colors-secondary-label,var(--color-secondary-label)));font-size:.9411764706rem;line-height:1.1875;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);margin-top:1rem}@media only screen and (max-width:735px){.filename[data-v-c8c40662]{font-size:.8235294118rem;line-height:1.4285714286;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);margin-top:0}}.filename>a[data-v-c8c40662],.filename>span[data-v-c8c40662]{display:flex;align-items:center;line-height:normal}a[data-v-c8c40662]{color:var(--url,var(--color-link))}.code-line-container[data-v-28c1cdd6]{display:inline-block;width:100%;box-sizing:border-box}.code-number[data-v-28c1cdd6]{display:inline-block;padding:0 1rem 0 8px;text-align:right;min-width:2em;color:#666;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-number[data-v-28c1cdd6]:before{content:attr(data-line-number)}.code-listing:not(:has(.code-number)):has(.highlighted) .code-line-container[data-v-28c1cdd6]{padding-left:8px;border-left:4px solid transparent}.code-listing:not(:has(.code-number)):has(.highlighted) .highlighted[data-v-28c1cdd6]{border-left-color:var(--color-code-line-highlight-border)}.highlighted[data-v-28c1cdd6]{background:var(--line-highlight,var(--color-code-line-highlight))}.highlighted .code-number[data-v-28c1cdd6]{border-left:4px solid var(--color-code-line-highlight-border);padding-left:4px}.strikethrough[data-v-28c1cdd6]{text-decoration-line:line-through;text-decoration-color:var(--color-figure-gray);opacity:.85}pre[data-v-28c1cdd6]{padding:14px 0;display:flex;overflow:unset;-webkit-overflow-scrolling:touch;white-space:pre;word-wrap:normal;height:100%;-moz-tab-size:var(--code-indentationWidth,4);-o-tab-size:var(--code-indentationWidth,4);tab-size:var(--code-indentationWidth,4)}@media only screeLine truncated
@@ -1,9 +0,0 @@
/*!
* This source file is part of the Swift.org open source project
*
* Copyright (c) 2021 Apple Inc. and the Swift project authors
* Licensed under Apache License v2.0 with Runtime Library Exception
*
* See https://swift.org/LICENSE.txt for license information
* See https://swift.org/CONTRIBUTORS.txt for Swift project authors
*/.betainfo[data-v-ba3b3cc0]{font-size:.9411764706rem;padding:3rem 0;background-color:var(--color-fill-secondary)}.full-width-container .betainfo-container[data-v-ba3b3cc0]{max-width:820px;margin-left:auto;margin-right:auto;padding-left:80px;padding-right:80px;box-sizing:border-box}@media print{.full-width-container .betainfo-container[data-v-ba3b3cc0]{padding-left:20px;padding-right:20px;max-width:none}}@media only screen and (min-width:1251px){.full-width-container .betainfo-container[data-v-ba3b3cc0]{max-width:980px}}@media only screen and (min-width:1500px){.full-width-container .betainfo-container[data-v-ba3b3cc0]{max-width:1080px}}@media only screen and (max-width:735px){.full-width-container .betainfo-container[data-v-ba3b3cc0]{width:auto;padding-left:20px;padding-right:20px}}.static-width-container .betainfo-container[data-v-ba3b3cc0]{margin-left:auto;margin-right:auto;width:1536px;width:980px}@media only screen and (max-width:1250px){.static-width-container .betainfo-container[data-v-ba3b3cc0]{width:692px}}@media only screen and (max-width:735px){.static-width-container .betainfo-container[data-v-ba3b3cc0]{width:87.5%}}@media only screen and (max-width:320px){.static-width-container .betainfo-container[data-v-ba3b3cc0]{width:215px}}.betainfo-label[data-v-ba3b3cc0]{font-weight:600;font-size:.9411764706rem}.betainfo-content[data-v-ba3b3cc0] p{margin-bottom:10px}a[data-v-2ca5e993]{text-decoration:underline;color:inherit;font-weight:600}.summary-section[data-v-3aa6f694]:last-of-type{margin-right:0}@media only screen and (max-width:735px){.summary-section[data-v-3aa6f694]{margin-right:0}}.title[data-v-246c819c]{color:var(--colors-text,var(--color-text));font-size:.8235294118rem;margin-right:.5rem;text-rendering:optimizeLegibility}.language[data-v-0e39c0ba]{padding-bottom:10px;justify-content:flex-end}.language-list[data-v-0e39c0ba],.language[data-v-0e39c0ba]{font-size:.8235294118rem;line-height:1.4285714286;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);margin-top:0;display:flex;align-items:center}.language-option.swift[data-v-0e39c0ba]{padding-right:10px;border-right:1px solid var(--colors-secondary-label,var(--color-secondary-label))}.language-option.objc[data-v-0e39c0ba]{padding-left:10px}.view-more-link[data-v-3f54e653]{font-size:.8235294118rem;line-height:1.2857142857;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);display:flex;flex-flow:row-reverse;margin-bottom:1.3rem}.documentation-hero[data-v-0958f035]{color:var(--color-documentation-intro-figure,var(--color-figure-gray));overflow:hidden;position:relative;padding-inline-end:var(--doc-hero-right-offset)}.documentation-hero[data-v-0958f035]:before{content:"";background:var(--standard-accent-color,var(--color-documentation-intro-fill,var(--color-fill-tertiary)));position:absolute;width:100%;height:100%}.documentation-hero[data-v-0958f035]:after{background:transparent;opacity:.85;width:100%;position:absolute;content:"";height:100%;inset-inline-start:0;top:0}@media screen{[data-color-scheme=dark] .documentation-hero[data-v-0958f035]:after{opacity:.55}}@media screen and (prefers-color-scheme:dark){[data-color-scheme=auto] .documentation-hero[data-v-0958f035]:after{opacity:.55}}.documentation-hero .icon[data-v-0958f035]{position:absolute;margin-top:10px;margin-inline-end:25px;inset-inline-end:0;width:250px;height:calc(100% - 20px);box-sizing:border-box}@media only screen and (max-width:735px){.documentation-hero .icon[data-v-0958f035]{display:none}}.documentation-hero .background-icon[data-v-0958f035]{color:var(--color-documentation-intro-accent,var(--color-figure-gray-secondary));display:block;width:250px;height:auto;opacity:.15;mix-blend-mode:normal;position:absolute;top:50%;inset-inline-start:0;transform:translateY(-50%);max-height:100%}.documentation-hero .background-icon[data-v-0958f035] img,.documentation-hero .background-icon[data-v-0958f035] svg{width:100%;height:100%}@media screen{[data-color-scheme=dark] .documentation-hero .background-icon[data-v-0958f035]{mix-blend-mode:normal;opacity:.15}}@media screen and (prefers-color-scheme:dark){[data-color-scheme=auto] .documentation-hero .background-icon[data-v-0958f035]{mix-blend-mode:normal;opacity:.15}}.documentation-hero__content[data-v-0958f035]:not(.minimized-hero){padding-top:2.3529411765rem;padding-bottom:2.3529411765rem;position:relative;z-index:1}.full-width-container .documentation-hero__content[data-v-0958f035]:not(.minimized-hero){max-width:820px;margin-left:auto;margin-right:auto;padding-left:80px;padding-right:80px;box-sizing:border-box}@media print{.full-width-container .documentation-hero__content[data-v-0958f035]:not(.minimized-hero){padding-left:20px;padding-right:20px;max-width:none}}@media only screen and (min-width:1251px){.full-width-container .documentation-hero__content[data-v-0958f035]:not(.minimized-hero){max-width:980px}}@media only screen and (min-width:150Line truncated
-9
View File
@@ -1,9 +0,0 @@
/*!
* This source file is part of the Swift.org open source project
*
* Copyright (c) 2021 Apple Inc. and the Swift project authors
* Licensed under Apache License v2.0 with Runtime Library Exception
*
* See https://swift.org/LICENSE.txt for license information
* See https://swift.org/CONTRIBUTORS.txt for Swift project authors
*/.color-scheme-toggle[data-v-0c0360ce]{--toggle-color-fill:var(--color-button-background);--toggle-color-text:var(--color-fill-blue);font-size:.7058823529rem;line-height:1.3333333333;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);border:1px solid var(--toggle-color-fill);border-radius:var(--toggle-border-radius-outer,var(--border-radius,4px));display:inline-flex;padding:1px}@media screen{[data-color-scheme=dark] .color-scheme-toggle[data-v-0c0360ce]{--toggle-color-text:var(--color-figure-blue)}}@media screen and (prefers-color-scheme:dark){[data-color-scheme=auto] .color-scheme-toggle[data-v-0c0360ce]{--toggle-color-text:var(--color-figure-blue)}}@media print{.color-scheme-toggle[data-v-0c0360ce]{display:none}}:root.no-js .color-scheme-toggle[data-v-0c0360ce]{visibility:hidden}input[data-v-0c0360ce]{position:absolute;clip:rect(1px,1px,1px,1px);clip-path:inset(0 0 99.9% 99.9%);overflow:hidden;height:1px;width:1px;padding:0;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.fromkeyboard label[data-v-0c0360ce]:focus-within{outline:4px solid var(--color-focus-color);outline-offset:1px}.text[data-v-0c0360ce]{border:1px solid transparent;border-radius:var(--toggle-border-radius-inner,2px);color:var(--toggle-color-text);display:inline-block;text-align:center;padding:1px 6px;min-width:42px;box-sizing:border-box}.text[data-v-0c0360ce]:hover{cursor:pointer}input:checked+.text[data-v-0c0360ce]{--toggle-color-text:var(--color-button-text);background:var(--toggle-color-fill);border-color:var(--toggle-color-fill)}.footer[data-v-f1d65b2a]{border-top:1px solid var(--color-grid)}.row[data-v-f1d65b2a]{margin-left:auto;margin-right:auto;width:1536px;width:980px;display:flex;flex-direction:row-reverse;margin:20px auto}@media only screen and (max-width:1250px){.row[data-v-f1d65b2a]{width:692px}}@media only screen and (max-width:735px){.row[data-v-f1d65b2a]{width:87.5%}}@media only screen and (max-width:320px){.row[data-v-f1d65b2a]{width:215px}}@media only screen and (max-width:735px){.row[data-v-f1d65b2a]{width:100%;padding:0 .9411764706rem;box-sizing:border-box}}.InitialLoadingPlaceholder[data-v-35c356b6]{background:var(--colors-loading-placeholder-background,var(--color-loading-placeholder-background));height:100vh;width:100%}.svg-icon[data-v-06e5463e]{fill:var(--colors-svg-icon-fill-light,var(--color-svg-icon));transform:scale(1);-webkit-transform:scale(1);overflow:visible}.theme-dark .svg-icon[data-v-06e5463e]{fill:var(--colors-svg-icon-fill-dark,var(--color-svg-icon))}@media screen{[data-color-scheme=dark] .svg-icon[data-v-06e5463e]{fill:var(--colors-svg-icon-fill-dark,var(--color-svg-icon))}}@media screen and (prefers-color-scheme:dark){[data-color-scheme=auto] .svg-icon[data-v-06e5463e]{fill:var(--colors-svg-icon-fill-dark,var(--color-svg-icon))}}.svg-icon.icon-inline[data-v-06e5463e]{display:inline-block;vertical-align:middle;fill:currentColor}.svg-icon.icon-inline[data-v-06e5463e] .svg-icon-stroke{stroke:currentColor}[data-v-06e5463e] .svg-icon-stroke{stroke:var(--colors-svg-icon-fill-light,var(--color-svg-icon))}.theme-dark[data-v-06e5463e] .svg-icon-stroke{stroke:var(--colors-svg-icon-fill-dark,var(--color-svg-icon))}@media screen{[data-color-scheme=dark][data-v-06e5463e] .svg-icon-stroke{stroke:var(--colors-svg-icon-fill-dark,var(--color-svg-icon))}}@media screen and (prefers-color-scheme:dark){[data-color-scheme=auto][data-v-06e5463e] .svg-icon-stroke{stroke:var(--colors-svg-icon-fill-dark,var(--color-svg-icon))}}.inline-chevron-right-icon[data-v-7413f2a0]{transform:scaleX(var(--scale-inline,1))}.suggest-lang[data-v-c2dca0ae]{background:#000;color:#fff;display:flex;justify-content:center;border-bottom:1px solid var(--color-grid)}.suggest-lang__wrapper[data-v-c2dca0ae]{display:flex;align-items:center;width:100%;max-width:var(--wrapper-max-width,1920px);margin:0 .9411764706rem;position:relative;height:52px}.suggest-lang__link[data-v-c2dca0ae]{font-size:.8235294118rem;line-height:1.4285714286;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);margin:0 auto;color:#09f}.suggest-lang__close-icon-wrapper[data-v-c2dca0ae]{position:absolute;right:-.2352941176rem;top:0;height:100%;box-sizing:border-box;display:flex;align-items:center;z-index:1}.suggest-lang__close-icon-button[data-v-c2dca0ae]{padding:.2352941176rem}.suggest-lang__close-icon-button .close-icon[data-v-c2dca0ae]{width:8px;display:block}.suggest-lang .inline-chevron-right-icon[data-v-c2dca0ae]{padding-left:.2352941176rem;width:8px}select[data-v-d21858a2]{font-size:.7058823529rem;line-height:1.3333333333;font-weight:600;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);color:var(--color-fill-blue);padding-right:15px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;cursor:pointer}select[data-v-d21858a2]:hover{text-decoration:underline}.locale-selectoLine truncated
-9
View File
@@ -1,9 +0,0 @@
/*!
* This source file is part of the Swift.org open source project
*
* Copyright (c) 2021 Apple Inc. and the Swift project authors
* Licensed under Apache License v2.0 with Runtime Library Exception
*
* See https://swift.org/LICENSE.txt for license information
* See https://swift.org/CONTRIBUTORS.txt for Swift project authors
*/.nav-title-content[data-v-854b4dd6]{max-width:100%}.title[data-v-854b4dd6]{color:var(--color-nav-root-title,currentColor);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:inline-block;vertical-align:top;max-width:296px}@media only screen and (max-width:1023px){.title[data-v-854b4dd6]{max-width:205px}}@media only screen and (max-width:767px){.title[data-v-854b4dd6]{flex-basis:fill;display:initial;vertical-align:initial;max-width:none}}.subhead[data-v-854b4dd6]{color:var(--color-nav-root-subhead)}.theme-dark .subhead[data-v-854b4dd6]{color:var(--color-nav-dark-root-subhead)}.mobile-dropdown[data-v-2c27d339]{box-sizing:border-box}.nav--in-breakpoint-range .mobile-dropdown[data-v-2c27d339]{padding-left:.2352941176rem;padding-right:.2352941176rem}.mobile-dropdown ul[data-v-2c27d339]{list-style:none}.mobile-dropdown .option[data-v-2c27d339]{cursor:pointer;font-size:.7058823529rem;padding:.5rem 0;display:block;text-decoration:none;color:inherit}.mobile-dropdown .option[data-v-2c27d339]:focus{outline-offset:0}.mobile-dropdown .option.depth1[data-v-2c27d339]{padding-left:.4705882353rem}.active[data-v-2c27d339],.tutorial.router-link-active[data-v-2c27d339]{font-weight:600}.active[data-v-2c27d339]:focus,.tutorial.router-link-active[data-v-2c27d339]:focus{outline:none}.chapter-list[data-v-2c27d339]:not(:first-child){margin-top:1rem}.chapter-name[data-v-2c27d339],.tutorial[data-v-2c27d339]{padding:.5rem 0;font-size:1rem;line-height:1.4705882353;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.section-list[data-v-2c27d339],.tutorial-list[data-v-2c27d339]{padding:0 .5882352941rem}.chapter-list:last-child .tutorial-list[data-v-2c27d339]:last-child{padding-bottom:10em}.chapter-list[data-v-2c27d339]{display:inline-block}.form-element[data-v-f934959a]{position:relative}.form-dropdown[data-v-f934959a]{font-size:1rem;line-height:1.2352941176;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);display:block;box-sizing:border-box;width:100%;height:3.3em;color:var(--color-dropdown-text);padding:1.1176470588rem 2.3529411765rem 0 .9411764706rem;text-align:left;border:1px solid var(--color-dropdown-border);border-radius:var(--border-radius,4px);background-clip:padding-box;margin-bottom:.8235294118rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;min-height:32px}.form-dropdown[data-v-f934959a]:focus{box-shadow:0 0 0 4px var(--color-focus-color);outline:none;border-color:var(--color-focus-border-color)}.form-dropdown.no-eyebrow[data-v-f934959a]{padding-top:0}.form-dropdown[data-v-f934959a]:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--color-dropdown-text)}.form-dropdown[data-v-f934959a]::-ms-expand{opacity:0}.form-dropdown~.form-icon[data-v-f934959a]{position:absolute;display:block;pointer-events:none;fill:var(--color-figure-gray-tertiary);right:14px;width:13px;height:auto;top:50%;transform:translateY(-50%)}.is-open .form-dropdown~.form-icon[data-v-f934959a]{transform:translateY(-50%) scale(-1)}@media only screen and (max-width:735px){.form-dropdown~.form-icon[data-v-f934959a]{right:14px}}.form-dropdown~.form-label[data-v-f934959a]{font-size:.7058823529rem;line-height:1.75;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);position:absolute;top:.4705882353rem;left:17px;color:var(--color-figure-gray-secondary);pointer-events:none;padding:0;z-index:1}.form-dropdown[data-v-f934959a] option{color:var(--color-dropdown-text)}.form-dropdown-selectnone[data-v-f934959a]{color:transparent}.form-dropdown-selectnone~.form-label[data-v-f934959a]{font-size:1rem;line-height:1.2352941176;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);top:19px;left:17px;color:var(--color-figure-gray-tertiary)}.form-dropdown-selectnone[data-v-f934959a]:-moz-focusring{text-shadow:none}.form-dropdown-selectnone[data-v-f934959a]::-ms-value{display:none}.theme-dark .form-dropdown[data-v-f934959a]{color:var(--color-dropdown-dark-text);background-color:var(--color-dropdown-dark-background);border-color:var(--color-dropdown-dark-border)}.theme-dark .form-dropdown~.form-label[data-v-f934959a]{color:#ccc}.theme-dark .form-dropdown[data-v-f934959a]:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--color-dropdown-dark-text)}.theme-dark .form-dropdown.form-dropdown-selectnone[data-v-f934959a]{color:transparent}.theme-dark .form-dropdown.form-dropdown-selectnone[data-v-f934959a]:-moz-focusring{text-shadow:none}.theme-dark .form-dropdown-selectnone~.form-label[data-v-f934959a]{color:#b0b0b0}.dropdown-small[data-v-6adda760]{height:30px;display:flex;align-items:center;position:relative;background:var(--color-fill)}.dropdown-small .form-dropdown-toggle[data-v-6adda760]{line-height:1.5;font-size:12px;padding-top:0;padding-bottom:0;padding-left:20px;min-height:unseLine truncated
-9
View File
@@ -1,9 +0,0 @@
/*!
* This source file is part of the Swift.org open source project
*
* Copyright (c) 2021 Apple Inc. and the Swift project authors
* Licensed under Apache License v2.0 with Runtime Library Exception
*
* See https://swift.org/LICENSE.txt for license information
* See https://swift.org/CONTRIBUTORS.txt for Swift project authors
*/.tutorials-navigation-link[data-v-e9f9b59c]{color:var(--color-tutorials-overview-navigation-link);transition:color .3s linear}.tutorials-navigation-link[data-v-e9f9b59c]:hover{text-decoration:none;transition:none;color:var(--color-tutorials-overview-navigation-link-hover)}.tutorials-navigation-link.active[data-v-e9f9b59c]{color:var(--color-tutorials-overview-navigation-link-active)}.tutorials-navigation-list[data-v-4e0180fa]{list-style-type:none;margin:0}.tutorials-navigation-list li+li[data-v-4e0180fa]:not(.volume--named){margin-top:24px}.tutorials-navigation-list .volume--named+.volume--named[data-v-4e0180fa]{margin-top:12px}.expand-enter-active,.expand-leave-active{transition:height .3s ease-in-out;overflow:hidden}.expand-enter,.expand-leave-to{height:0}.toggle[data-v-489416f8]{color:#f0f0f0;line-height:21px;display:flex;align-items:center;width:100%;font-weight:600;padding:6px 6px 6px 0;border-bottom:1px solid #2a2a2a;text-decoration:none;box-sizing:border-box}@media only screen and (max-width:767px){.toggle[data-v-489416f8]{padding-right:6px;border-bottom-color:hsla(0,0%,100%,.1)}}.toggle .text[data-v-489416f8]{word-break:break-word}.toggle[data-v-489416f8]:hover{text-decoration:none}.toggle .toggle-icon[data-v-489416f8]{display:inline-block;transition:transform .2s ease-in;height:.4em;width:.4em;margin-left:auto;margin-right:.2em}.collapsed .toggle .toggle-icon[data-v-489416f8]{transform:rotate(45deg)}.collapsed .toggle[data-v-489416f8],.collapsed .toggle[data-v-489416f8]:hover{color:#b0b0b0}.tutorials-navigation-menu-content[data-v-489416f8]{opacity:1;transition:height .2s ease-in,opacity .2s ease-in}.collapsed .tutorials-navigation-menu-content[data-v-489416f8]{height:0;opacity:0}.tutorials-navigation-menu-content .tutorials-navigation-list[data-v-489416f8]{padding:24px 0 12px 0}.tutorials-navigation[data-v-79093ed6]{font-size:1rem;line-height:1.2352941176;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.nav-title-content[data-v-854b4dd6]{max-width:100%}.title[data-v-854b4dd6]{color:var(--color-nav-root-title,currentColor);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:inline-block;vertical-align:top;max-width:296px}@media only screen and (max-width:1023px){.title[data-v-854b4dd6]{max-width:205px}}@media only screen and (max-width:767px){.title[data-v-854b4dd6]{flex-basis:fill;display:initial;vertical-align:initial;max-width:none}}.subhead[data-v-854b4dd6]{color:var(--color-nav-root-subhead)}.theme-dark .subhead[data-v-854b4dd6]{color:var(--color-nav-dark-root-subhead)}.nav[data-v-54bcce6d] .nav-menu{padding-top:0}.nav[data-v-54bcce6d] .nav-menu .nav-menu-items{margin-left:auto}@media only screen and (min-width:768px){.nav[data-v-54bcce6d] .nav-menu .nav-menu-items .in-page-navigation{display:none}}@media only screen and (min-width:320px)and (max-width:735px){.nav[data-v-54bcce6d] .nav-menu .nav-menu-items{padding:18px 0 40px}}.hero[data-v-400ffab5]{margin-left:auto;margin-right:auto;width:1536px;width:980px;padding-bottom:4.7058823529rem;padding-top:4.7058823529rem}@media only screen and (max-width:1250px){.hero[data-v-400ffab5]{width:692px}}@media only screen and (max-width:735px){.hero[data-v-400ffab5]{width:87.5%}}@media only screen and (max-width:320px){.hero[data-v-400ffab5]{width:215px}}@media screen{.hero[data-v-400ffab5]{--color-fill:#fff;--color-fill-secondary:#f7f7f7;--color-fill-tertiary:#f0f0f0;--color-fill-quaternary:#282828;--color-fill-blue:#00f;--color-fill-light-blue-secondary:#d1d1ff;--color-fill-gray:#ccc;--color-fill-gray-secondary:#f5f5f5;--color-fill-gray-tertiary:#f0f0f0;--color-fill-gray-quaternary:#f0f0f0;--color-fill-green-secondary:#f0fff0;--color-fill-orange-secondary:#fffaf6;--color-fill-red-secondary:#fff0f5;--color-figure-blue:#36f;--color-figure-gray:#000;--color-figure-gray-secondary:#666;--color-figure-gray-secondary-alt:#666;--color-figure-gray-tertiary:#666;--color-figure-green:green;--color-figure-light-gray:#666;--color-figure-orange:#c30;--color-figure-red:red;--color-tutorials-teal:#000;--color-article-background:var(--color-fill-tertiary);--color-article-body-background:var(--color-fill);--color-aside-deprecated:var(--color-figure-gray);--color-aside-deprecated-background:var(--color-fill-orange-secondary);--color-aside-deprecated-border:var(--color-figure-orange);--color-aside-experiment:var(--color-figure-gray);--color-aside-experiment-background:var(--color-fill-gray-secondary);--color-aside-experiment-border:var(--color-figure-light-gray);--color-aside-important:var(--color-figure-gray);--color-aside-important-background:var(--color-fill-gray-secondary);--color-aside-important-border:var(--color-figure-light-gray);--color-aside-note:var(--color-figure-gray);--color-aside-note-background:var(--color-fill-gray-secondary);--color-aside-note-border:var(--color-figure-light-gray);--color-aside-tip:var(--color-figure-gray);--color-aside-tip-background:var(--color-fill-gray-secondaryLine truncated
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"content","content":[{"level":2,"type":"heading","anchor":"Overview","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"codeVoice","code":"AmiiboService"},{"type":"text","text":" fetches data from the "},{"type":"reference","identifier":"https:\/\/www.amiiboapi.org","isActive":true},{"type":"text","text":" and returns it as Swift models."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"The library does not expose a generated client that maps one-to-one to the REST endpoints. Instead, "},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboService","isActive":true},{"type":"text","text":" offers one method per resource, takes a typed filter, returns sorted models, and throws a single "},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboServiceError","isActive":true},{"type":"text","text":" type."}]},{"level":2,"type":"heading","anchor":"Installation","text":"Installation"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Add the package and the "},{"type":"codeVoice","code":"AmiiboService"},{"type":"text","text":" product to "},{"type":"codeVoice","code":"Package.swift"},{"type":"text","text":":"}]},{"type":"codeListing","syntax":"swift","code":["let package = Package("," \/\/ name, platforms, products, etc."," dependencies: ["," .package(url: \"https:\/\/github.com\/rock-n-code\/amiibo-service\", from: \"2.0.0\"),"," ],"," targets: ["," .target("," name: \"SomeTarget\","," dependencies: ["," .product(name: \"AmiiboService\", package: \"amiibo-service\"),"," ]"," ),"," ]",")"]},{"type":"paragraph","inlineContent":[{"type":"text","text":"In Xcode, add the package URL under "},{"inlineContent":[{"type":"text","text":"File › Add Package Dependencies…"}],"type":"strong"},{"type":"text","text":"."}]},{"name":"Important","type":"aside","content":[{"inlineContent":[{"type":"text","text":"Requires Swift 6.2 or later, and iOS 13, macOS 10.15, tvOS 13, visionOS 1, or watchOS 6 or later."}],"type":"paragraph"}],"style":"important"},{"level":2,"type":"heading","anchor":"Usage","text":"Usage"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Create an "},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboService","isActive":true},{"type":"text","text":" and call its methods. When you omit the filter, the method returns every item:"}]},{"type":"codeListing","syntax":"swift","code":["import AmiiboService","","let service = AmiiboService()","","\/\/ All amiibos","let amiibos = try await service.getAmiibos()","","\/\/ Amiibos whose name contains \"zelda\"","let zeldaAmiibos = try await service.getAmiibos(.init(name: \"zelda\"))","","\/\/ Amiibo series, types, game characters, and game series","let series = try await service.getAmiiboSeries()","let types = try await service.getAmiiboTypes()","let characters = try await service.getGameCharacters()","let gameSeries = try await service.getGameSeries()","","\/\/ Date of the last data update (UTC)","let lastUpdated = try await service.getLastUpdated()"]},{"type":"paragraph","inlineContent":[{"type":"text","text":"Results are sorted in ascending order by "},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/identifier","isActive":true},{"type":"text","text":" or by "},{"type":"codeVoice","code":"key"},{"type":"text","text":"."}]},{"level":2,"type":"heading","anchor":"Error-handling","text":"Error handling"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Every method throws "},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboServiceError","isActive":true},{"type":"text","text":". When nothing matches, "},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboService\/getAmiibos(_:)","isActive":true},{"type":"text","text":" returns an empty array, while the other list methods throw "},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboServiceError\/notFound","isActive":true},{"type":"text","text":":"}]},{"type":"codeListing","syntax":"swift","code":["do throws(AmiiboServiceError) {"," let series = try await service.getAmiiboSeries(.init(key: \"0x01\"))","} catch .notFound {"," \/\/ No amiibo series has this key.","} catch {"," \/\/ .badRequest, .cancelled, .decoding, .notAvailable, .undocumented, or .unknown","}"]},{"level":2,"type":"heading","anchor":"Caching","text":"Caching"},{"type":"paragraph","inlineContent":[{"type":"text","text":"The library has no built-in cache. The Amiibo API asks regular consumers to cache responses."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"To cache at the HTTP level, give "},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiibLine truncated
@@ -1 +0,0 @@
{"relationshipsSections":[{"kind":"relationships","identifiers":["doc:\/\/AmiiboService\/SQ","doc:\/\/AmiiboService\/SH","doc:\/\/AmiiboService\/s8SendableP","doc:\/\/AmiiboService\/s16SendableMetatypeP"],"type":"conformsTo","title":"Conforms To"}],"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"languages":["swift"]}]}],"schemaVersion":{"minor":3,"patch":0,"major":0},"metadata":{"title":"Amiibo","externalID":"s:13AmiiboService0A0V","modules":[{"name":"AmiiboService"}],"role":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"roleHeading":"Structure","symbolKind":"struct"},"kind":"symbol","seeAlsoSections":[{"anchor":"Models","generated":true,"identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboSeries","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboType","doc:\/\/AmiiboService\/documentation\/AmiiboService\/GameCharacter","doc:\/\/AmiiboService\/documentation\/AmiiboService\/GameSeries"],"title":"Models"}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"},"topicSections":[{"title":"Nested Models","anchor":"Nested-Models","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"]},{"title":"Instance Properties","generated":true,"anchor":"Instance-Properties","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameCharacter","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameSeries","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/head","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/identifier","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/image","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/imageURL","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/name","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/release-swift.property","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/series","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/tail","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/type"]},{"title":"Default Implementations","generated":true,"anchor":"Default-Implementations","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Equatable-Implementations"]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService"]]},"sections":[],"abstract":[{"type":"text","text":"A model that represents an amiibo."}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboType":{"navigatorTitle":[{"kind":"identifier","text":"AmiiboType"}],"title":"AmiiboType","url":"\/documentation\/amiiboservice\/amiibotype","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"struct"},{"text":" ","kind":"text"},{"text":"AmiiboType","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboType","kind":"symbol","abstract":[{"text":"A model that represents an amiibo type.","type":"text"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/identifier":{"title":"identifier","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/identifier","kind":"symbol","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"type":"topic","abstract":[{"type":"text","text":"The full 16-character hexadecimal identifier, composed of the "},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/head","isActive":true,"type":"reference"},{"type":"text","text":" and "},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/tail","isActive":true,"type":"reference"},{"type":"text","text":"."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/identifier"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct":{"title":"Amiibo.Platform","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct","navigatorTitle":[{"text":"Platform","kind":"identifier"}],"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Platform","kind":"identifier"}],"type":"topLine truncated
@@ -1 +0,0 @@
{"kind":"symbol","primaryContentSections":[{"declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"internalParam","text":"lhs"},{"kind":"text","text":": "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"internalParam","text":"rhs"},{"kind":"text","text":": "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","text":"Bool"}]}],"kind":"declarations"}],"metadata":{"roleHeading":"Operator","title":"!=(_:_:)","role":"symbol","extendedModule":"Swift","fragments":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"!=","kind":"identifier"},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"kind":"text","text":") -> "},{"text":"Bool","kind":"typeIdentifier","preciseIdentifier":"s:Sb"}],"modules":[{"name":"AmiiboService","relatedModules":["Swift"]}],"externalID":"s:SQsRi_zRi0_zrlE2neoiySbx_xtFZ::SYNTHESIZED::s:13AmiiboService0A0V","symbolKind":"op"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"schemaVersion":{"minor":3,"major":0,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/!=(_:_:)","interfaceLanguage":"swift"},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/!=(_:_:)"]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/!=(_:_:)":{"title":"!=(_:_:)","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/!=(_:_:)","kind":"symbol","fragments":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"!=","kind":"identifier"},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":") -> ","kind":"text"},{"text":"Bool","kind":"typeIdentifier","preciseIdentifier":"s:Sb"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/!=(_:_:)","abstract":[]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]}}}
@@ -1 +0,0 @@
{"sections":[],"topicSections":[{"anchor":"Operators","title":"Operators","generated":true,"identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/!=(_:_:)"]}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/equatable-implementations"]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"metadata":{"roleHeading":"API Collection","modules":[{"name":"AmiiboService"}],"role":"collectionGroup","title":"Equatable Implementations"},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Equatable-Implementations"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"kind":"article","references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/!=(_:_:)":{"title":"!=(_:_:)","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/!=(_:_:)","kind":"symbol","fragments":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"!=","kind":"identifier"},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":") -> ","kind":"text"},{"text":"Bool","kind":"typeIdentifier","preciseIdentifier":"s:Sb"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/!=(_:_:)","abstract":[]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]}}}
@@ -1 +0,0 @@
{"relationshipsSections":[{"identifiers":["doc:\/\/AmiiboService\/SQ","doc:\/\/AmiiboService\/SH","doc:\/\/AmiiboService\/s8SendableP","doc:\/\/AmiiboService\/s16SendableMetatypeP"],"kind":"relationships","type":"conformsTo","title":"Conforms To"}],"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Game","kind":"identifier"}],"languages":["swift"]}]}],"sections":[],"topicSections":[{"generated":true,"identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/identifiers","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/name","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/usages"],"anchor":"Instance-Properties","title":"Instance Properties"},{"generated":true,"identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/Equatable-Implementations"],"anchor":"Default-Implementations","title":"Default Implementations"}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/game"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"seeAlsoSections":[{"generated":true,"identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"],"anchor":"Nested-Models","title":"Nested Models"}],"metadata":{"title":"Amiibo.Game","externalID":"s:13AmiiboService0A0V4GameV","modules":[{"name":"AmiiboService"}],"extendedModule":"AmiiboService","role":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Game"}],"navigatorTitle":[{"kind":"identifier","text":"Game"}],"roleHeading":"Structure","symbolKind":"struct"},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game"},"abstract":[{"type":"text","text":"A model that represents a game related to an amiibo."}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/SQ":{"type":"unresolvable","title":"Swift.Equatable","identifier":"doc:\/\/AmiiboService\/SQ"},"doc://AmiiboService/s8SendableP":{"type":"unresolvable","title":"Swift.Sendable","identifier":"doc:\/\/AmiiboService\/s8SendableP"},"doc://AmiiboService/s16SendableMetatypeP":{"type":"unresolvable","title":"Swift.SendableMetatype","identifier":"doc:\/\/AmiiboService\/s16SendableMetatypeP"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game/identifiers":{"title":"identifiers","kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/game\/identifiers","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifiers"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"kind":"text","text":"]"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/identifiers","type":"topic","abstract":[{"text":"A list of game identifiers associated with this game.","type":"text"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"title":"Amiibo.Game","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/game","navigatorTitle":[{"kind":"identifier","text":"Game"}],"kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Game"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","abstract":[{"text":"A model that represents a game related to an amiibo.","type":"text"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"navigatorTitle":[{"kind":"identifier","text":"Usage"}],"title":"Amiibo.Usage","url":"\/documentation\/amiiboservice\/amiibo\/usage","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Usage"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","kind":"symbol","abstract":[{"type":"text","text":"A model that represents the usage of an amiibo within a certain game."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct":{"title":"Amiibo.PlaLine truncated
@@ -1 +0,0 @@
{"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/game\/!=(_:_:)"]}],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/!=(_:_:)","interfaceLanguage":"swift"},"sections":[],"schemaVersion":{"major":0,"minor":3,"patch":0},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"static"},{"text":" ","kind":"text"},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"text":"!=","kind":"identifier"},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"text":"lhs","kind":"internalParam"},{"text":": ","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"text":"rhs","kind":"internalParam"},{"text":": ","kind":"text"},{"text":"borrowing","kind":"keyword"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"languages":["swift"],"platforms":["macOS"]}]}],"metadata":{"role":"symbol","title":"!=(_:_:)","externalID":"s:SQsRi_zRi0_zrlE2neoiySbx_xtFZ::SYNTHESIZED::s:13AmiiboService0A0V4GameV","roleHeading":"Operator","modules":[{"relatedModules":["Swift"],"name":"AmiiboService"}],"symbolKind":"op","fragments":[{"text":"static","kind":"keyword"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"kind":"keyword","text":"borrowing"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"kind":"keyword","text":"borrowing"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":") -> ","kind":"text"},{"preciseIdentifier":"s:Sb","text":"Bool","kind":"typeIdentifier"}],"extendedModule":"Swift"},"references":{"doc://AmiiboService/documentation/AmiiboService":{"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}],"title":"AmiiboService","type":"topic","kind":"symbol","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"title":"Amiibo.Game","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/game","navigatorTitle":[{"kind":"identifier","text":"Game"}],"kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Game"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","abstract":[{"text":"A model that represents a game related to an amiibo.","type":"text"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game/!=(_:_:)":{"title":"!=(_:_:)","url":"\/documentation\/amiiboservice\/amiibo\/game\/!=(_:_:)","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/!=(_:_:)","kind":"symbol","abstract":[]}}}
@@ -1 +0,0 @@
{"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/game\/equatable-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"kind":"article","metadata":{"role":"collectionGroup","title":"Equatable Implementations","modules":[{"name":"AmiiboService"}],"roleHeading":"API Collection"},"schemaVersion":{"minor":3,"major":0,"patch":0},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/Equatable-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Operators","generated":true,"anchor":"Operators","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/!=(_:_:)"]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game"]]},"sections":[],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"title":"Amiibo.Game","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/game","navigatorTitle":[{"kind":"identifier","text":"Game"}],"kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Game"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","abstract":[{"text":"A model that represents a game related to an amiibo.","type":"text"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game/!=(_:_:)":{"title":"!=(_:_:)","url":"\/documentation\/amiiboservice\/amiibo\/game\/!=(_:_:)","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/!=(_:_:)","kind":"symbol","abstract":[]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifiers"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"]"}],"platforms":["macOS"],"languages":["swift"]}]}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/game\/identifiers"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"patch":0,"major":0,"minor":3},"metadata":{"roleHeading":"Instance Property","title":"identifiers","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifiers"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"]"}],"modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A0V4GameV11identifiersSaySSGvp","symbolKind":"property"},"kind":"symbol","identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/identifiers"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game"]]},"sections":[],"abstract":[{"text":"A list of game identifiers associated with this game.","type":"text"}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"title":"Amiibo.Game","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/game","navigatorTitle":[{"kind":"identifier","text":"Game"}],"kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Game"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","abstract":[{"text":"A model that represents a game related to an amiibo.","type":"text"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game/identifiers":{"title":"identifiers","kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/game\/identifiers","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifiers"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"kind":"text","text":"]"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/identifiers","type":"topic","abstract":[{"text":"A list of game identifiers associated with this game.","type":"text"}]}}}
@@ -1 +0,0 @@
{"abstract":[{"type":"text","text":"The name of this game."}],"schemaVersion":{"major":0,"minor":3,"patch":0},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/name"},"sections":[],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/game\/name"],"traits":[{"interfaceLanguage":"swift"}]}],"metadata":{"externalID":"s:13AmiiboService0A0V4GameV4nameSSvp","role":"symbol","title":"name","roleHeading":"Instance Property","symbolKind":"property","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"name","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"modules":[{"name":"AmiiboService"}]},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game"]]},"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"name","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}]}],"kind":"declarations"}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game/name":{"kind":"symbol","title":"name","url":"\/documentation\/amiiboservice\/amiibo\/game\/name","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"name"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/name","type":"topic","abstract":[{"type":"text","text":"The name of this game."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"title":"Amiibo.Game","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/game","navigatorTitle":[{"kind":"identifier","text":"Game"}],"kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Game"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","abstract":[{"text":"A model that represents a game related to an amiibo.","type":"text"}]}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"usages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Usage","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","preciseIdentifier":"s:13AmiiboService0A0V5UsageV"},{"kind":"text","text":"]?"}],"languages":["swift"]}]}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/game\/usages"],"traits":[{"interfaceLanguage":"swift"}]}],"kind":"symbol","metadata":{"title":"usages","externalID":"s:13AmiiboService0A0V4GameV6usagesSayAC5UsageVGSgvp","modules":[{"name":"AmiiboService"}],"role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"usages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Usage","preciseIdentifier":"s:13AmiiboService0A0V5UsageV"},{"kind":"text","text":"]?"}],"roleHeading":"Instance Property","symbolKind":"property"},"schemaVersion":{"minor":3,"major":0,"patch":0},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/usages","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game"]]},"sections":[],"abstract":[{"type":"text","text":"A list of amiibo usages within this game, or "},{"code":"nil","type":"codeVoice"},{"type":"text","text":" unless the request sets "},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showUsage","type":"reference","isActive":true},{"type":"text","text":"."}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game/usages":{"title":"usages","url":"\/documentation\/amiiboservice\/amiibo\/game\/usages","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"usages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V5UsageV","text":"Usage"},{"kind":"text","text":"]?"}],"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/usages","abstract":[{"type":"text","text":"A list of amiibo usages within this game, or "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" unless the request sets "},{"type":"reference","isActive":true,"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showUsage"},{"type":"text","text":"."}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/showUsage":{"title":"showUsage","url":"\/documentation\/amiiboservice\/amiibofilter\/showusage","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"showUsage"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","text":"Bool"},{"kind":"text","text":"?"}],"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showUsage","abstract":[{"type":"text","text":"A flag that indicates whether to include related games and their amiibo usages in "},{"type":"reference","isActive":true,"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property"},{"type":"text","text":". "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" means "},{"type":"codeVoice","code":"false"},{"type":"text","text":"."}]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/platform-swift.property":{"title":"platform","kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.property","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"platform"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Platform","preciseIdentifier":"s:13AmiiboService0A0V8PlatformV"},{"kind":"text","text":"?"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property","type":"topic","abLine truncated
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"gameCharacter"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}]}]}],"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/gamecharacter"]}],"schemaVersion":{"minor":3,"patch":0,"major":0},"metadata":{"roleHeading":"Instance Property","title":"gameCharacter","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"gameCharacter"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A0V13gameCharacterSSvp","symbolKind":"property"},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameCharacter"},"abstract":[{"type":"text","text":"The name of the game character associated with this amiibo."}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/gameCharacter":{"title":"gameCharacter","kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/gamecharacter","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"gameCharacter"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameCharacter","type":"topic","abstract":[{"type":"text","text":"The name of the game character associated with this amiibo."}]}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"gameSeries","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}]}]}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/gameseries"]}],"schemaVersion":{"patch":0,"major":0,"minor":3},"metadata":{"title":"gameSeries","externalID":"s:13AmiiboService0A0V10gameSeriesSSvp","modules":[{"name":"AmiiboService"}],"role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"gameSeries","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"roleHeading":"Instance Property","symbolKind":"property"},"kind":"symbol","identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameSeries"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"sections":[],"abstract":[{"type":"text","text":"The name of the game series associated with this amiibo."}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/gameSeries":{"title":"gameSeries","url":"\/documentation\/amiiboservice\/amiibo\/gameseries","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"gameSeries"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameSeries","kind":"symbol","abstract":[{"type":"text","text":"The name of the game series associated with this amiibo."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"head"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"languages":["swift"]}]}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/head"],"traits":[{"interfaceLanguage":"swift"}]}],"kind":"symbol","metadata":{"title":"head","externalID":"s:13AmiiboService0A0V4headSSvp","modules":[{"name":"AmiiboService"}],"role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"head"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"roleHeading":"Instance Property","symbolKind":"property"},"schemaVersion":{"minor":3,"major":0,"patch":0},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/head","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"sections":[],"abstract":[{"text":"The first 8 hexadecimal characters of the amiibo identifier.","type":"text"}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/head":{"kind":"symbol","title":"head","url":"\/documentation\/amiiboservice\/amiibo\/head","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"head"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/head","type":"topic","abstract":[{"text":"The first 8 hexadecimal characters of the amiibo identifier.","type":"text"}]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":" { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}]}]}],"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/identifier"]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"metadata":{"roleHeading":"Instance Property","title":"identifier","role":"symbol","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A0V10identifierSSvp","symbolKind":"property"},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/identifier","interfaceLanguage":"swift"},"abstract":[{"text":"The full 16-character hexadecimal identifier, composed of the ","type":"text"},{"isActive":true,"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/head"},{"text":" and ","type":"text"},{"isActive":true,"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/tail"},{"text":".","type":"text"}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/identifier":{"title":"identifier","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/identifier","kind":"symbol","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"type":"topic","abstract":[{"type":"text","text":"The full 16-character hexadecimal identifier, composed of the "},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/head","isActive":true,"type":"reference"},{"type":"text","text":" and "},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/tail","isActive":true,"type":"reference"},{"type":"text","text":"."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/identifier"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/head":{"kind":"symbol","title":"head","url":"\/documentation\/amiiboservice\/amiibo\/head","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"head"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/head","type":"topic","abstract":[{"text":"The first 8 hexadecimal characters of the amiibo identifier.","type":"text"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/tail":{"title":"tail","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/tail","kind":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"tail"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"type":"topic","abstract":[{"type":"text","text":"The last 8 hexadecimal characters of the amiibo identifier."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/tail"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"image"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}]}]}],"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/image"]}],"schemaVersion":{"minor":3,"patch":0,"major":0},"metadata":{"role":"symbol","title":"image","externalID":"s:13AmiiboService0A0V5imageSSvp","roleHeading":"Instance Property","symbolKind":"property","fragments":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"text":"image","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"modules":[{"name":"AmiiboService"}]},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/image"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"kind":"symbol","abstract":[{"type":"text","text":"A URL string pointing to the image of this amiibo."}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/image":{"title":"image","kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/image","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"image"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/image","type":"topic","abstract":[{"type":"text","text":"A URL string pointing to the image of this amiibo."}]}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"imageURL"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"URL","preciseIdentifier":"s:10Foundation3URLV"},{"kind":"text","text":"? { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}]}]}],"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/imageurl"]}],"schemaVersion":{"minor":3,"patch":0,"major":0},"metadata":{"roleHeading":"Instance Property","title":"imageURL","role":"symbol","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"imageURL"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"URL","preciseIdentifier":"s:10Foundation3URLV"},{"kind":"text","text":"?"}],"modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A0V8imageURL10Foundation0D0VSgvp","symbolKind":"property"},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/imageURL"},"abstract":[{"type":"text","text":"A URL constructed from the "},{"isActive":true,"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/image"},{"type":"text","text":" string, if valid."}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/image":{"title":"image","kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/image","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"image"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/image","type":"topic","abstract":[{"type":"text","text":"A URL string pointing to the image of this amiibo."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/imageURL":{"title":"imageURL","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/imageurl","kind":"symbol","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"imageURL"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"URL","preciseIdentifier":"s:10Foundation3URLV"},{"kind":"text","text":"?"}],"type":"topic","abstract":[{"type":"text","text":"A URL constructed from the "},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/image","isActive":true},{"type":"text","text":" string, if valid."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/imageURL"}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"name","kind":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}]}]}],"sections":[],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/name"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"minor":3,"major":0,"patch":0},"metadata":{"role":"symbol","title":"name","externalID":"s:13AmiiboService0A0V4nameSSvp","roleHeading":"Instance Property","symbolKind":"property","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"name"},{"kind":"text","text":": "},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"modules":[{"name":"AmiiboService"}]},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/name"},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"abstract":[{"type":"text","text":"The name of this amiibo."}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/name":{"title":"name","kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/name","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"name"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/name","type":"topic","abstract":[{"type":"text","text":"The name of this amiibo."}]}}}
@@ -1 +0,0 @@
{"abstract":[{"type":"text","text":"The related games of this amiibo, grouped by platform."}],"schemaVersion":{"minor":3,"major":0,"patch":0},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property","interfaceLanguage":"swift"},"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/platform-swift.property"]}],"metadata":{"role":"symbol","title":"platform","externalID":"s:13AmiiboService0A0V8platformAC8PlatformVSgvp","roleHeading":"Instance Property","symbolKind":"property","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"platform"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V8PlatformV","text":"Platform"},{"kind":"text","text":"?"}],"modules":[{"name":"AmiiboService"}]},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"platform"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V8PlatformV","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","text":"Platform"},{"kind":"text","text":"?"}],"languages":["swift"]}]},{"kind":"content","content":[{"level":2,"type":"heading","text":"Discussion","anchor":"discussion"},{"inlineContent":[{"type":"text","text":"This value is "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" unless the request sets "},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showGames","isActive":true},{"type":"text","text":" or "},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showUsage","isActive":true},{"type":"text","text":", or when the amiibo has no related games."}],"type":"paragraph"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/showUsage":{"title":"showUsage","url":"\/documentation\/amiiboservice\/amiibofilter\/showusage","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"showUsage"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","text":"Bool"},{"kind":"text","text":"?"}],"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showUsage","abstract":[{"type":"text","text":"A flag that indicates whether to include related games and their amiibo usages in "},{"type":"reference","isActive":true,"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property"},{"type":"text","text":". "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" means "},{"type":"codeVoice","code":"false"},{"type":"text","text":"."}]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/platform-swift.property":{"title":"platform","kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.property","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"platform"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Platform","preciseIdentifier":"s:13AmiiboService0A0V8PlatformV"},{"kind":"text","text":"?"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property","type":"topic","abstract":[{"type":"text","text":"The related games of this amiibo, grouped by platform."}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/showGames":{"title":"showGames","kind":"symbol","url":"\/documentation\/amiiboservice\/amiibofilter\/showgames","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"showGames"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":"?"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showGames","type":"topic","abstract":[{"type":"text","text":"A flag that indicates whether to include related games in "},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property","isActive":true},{"type":"text","text":". "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" means "},{"type":"codeVoice","code":"false"},{"Line truncated
@@ -1 +0,0 @@
{"topicSections":[{"generated":true,"identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/switch","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/switch2","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/threeDS","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/wiiU"],"anchor":"Instance-Properties","title":"Instance Properties"},{"generated":true,"anchor":"Default-Implementations","title":"Default Implementations","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/Equatable-Implementations"]}],"relationshipsSections":[{"title":"Conforms To","identifiers":["doc:\/\/AmiiboService\/SQ","doc:\/\/AmiiboService\/SH","doc:\/\/AmiiboService\/s8SendableP","doc:\/\/AmiiboService\/s16SendableMetatypeP"],"kind":"relationships","type":"conformsTo"}],"seeAlsoSections":[{"title":"Nested Models","anchor":"Nested-Models","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"],"generated":true}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/platform-swift.struct"]}],"kind":"symbol","primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Platform","kind":"identifier"}]}]}],"metadata":{"role":"symbol","modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A0V8PlatformV","roleHeading":"Structure","title":"Amiibo.Platform","symbolKind":"struct","navigatorTitle":[{"kind":"identifier","text":"Platform"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Platform"}],"extendedModule":"AmiiboService"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct"},"abstract":[{"text":"A model that represents a collection of ","type":"text"},{"code":"Switch","type":"codeVoice"},{"text":", ","type":"text"},{"code":"Switch 2","type":"codeVoice"},{"type":"text","text":", "},{"code":"3DS","type":"codeVoice"},{"type":"text","text":", and "},{"code":"Wii U","type":"codeVoice"},{"text":" games related to an amiibo.","type":"text"}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"navigatorTitle":[{"kind":"identifier","text":"Usage"}],"title":"Amiibo.Usage","url":"\/documentation\/amiiboservice\/amiibo\/usage","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Usage"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","kind":"symbol","abstract":[{"type":"text","text":"A model that represents the usage of an amiibo within a certain game."}]},"doc://AmiiboService/s16SendableMetatypeP":{"identifier":"doc:\/\/AmiiboService\/s16SendableMetatypeP","title":"Swift.SendableMetatype","type":"unresolvable"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct/switch2":{"title":"switch2","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct\/switch2","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"switch2"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Game","preciseIdentifier":"s:13AmiiboService0A0V4GameV"},{"kind":"text","text":"]"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/switch2","kind":"symbol","abstract":[{"type":"text","text":"A list of "},{"type":"codeVoice","code":"Switch 2"},{"type":"text","text":" games related to an amiibo."}]},"doc://AmiiboService/SQ":{"identifier":"doc:\/\/AmiiboService\/SQ","type":"unresolvable","title":"Swift.Equatable"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\Line truncated
@@ -1 +0,0 @@
{"sections":[],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/platform-swift.struct\/!=(_:_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"metadata":{"title":"!=(_:_:)","externalID":"s:SQsRi_zRi0_zrlE2neoiySbx_xtFZ::SYNTHESIZED::s:13AmiiboService0A0V8PlatformV","modules":[{"name":"AmiiboService","relatedModules":["Swift"]}],"extendedModule":"Swift","role":"symbol","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"roleHeading":"Operator","symbolKind":"op"},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/!=(_:_:)"},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"text":"func","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"internalParam","text":"lhs"},{"text":": ","kind":"text"},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"internalParam","text":"rhs"},{"kind":"text","text":": "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"text":") -> ","kind":"text"},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","text":"Bool"}]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct/!=(_:_:)":{"title":"!=(_:_:)","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct\/!=(_:_:)","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/!=(_:_:)","kind":"symbol","abstract":[]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct":{"title":"Amiibo.Platform","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct","navigatorTitle":[{"text":"Platform","kind":"identifier"}],"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Platform","kind":"identifier"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","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":"Wii U"},{"type":"text","text":" games related to an amiibo."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"}}}
@@ -1 +0,0 @@
{"sections":[],"topicSections":[{"title":"Operators","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/!=(_:_:)"],"generated":true,"anchor":"Operators"}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/platform-swift.struct\/equatable-implementations"]}],"schemaVersion":{"patch":0,"major":0,"minor":3},"metadata":{"modules":[{"name":"AmiiboService"}],"roleHeading":"API Collection","role":"collectionGroup","title":"Equatable Implementations"},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/Equatable-Implementations"},"kind":"article","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct"]]},"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct":{"title":"Amiibo.Platform","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct","navigatorTitle":[{"text":"Platform","kind":"identifier"}],"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Platform","kind":"identifier"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","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":"Wii U"},{"type":"text","text":" games related to an amiibo."}]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct/!=(_:_:)":{"title":"!=(_:_:)","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct\/!=(_:_:)","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/!=(_:_:)","kind":"symbol","abstract":[]}}}
@@ -1 +0,0 @@
{"abstract":[{"type":"text","text":"A list of "},{"type":"codeVoice","code":"Switch"},{"type":"text","text":" games related to an amiibo."}],"schemaVersion":{"major":0,"minor":3,"patch":0},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/switch"},"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/platform-swift.struct\/switch"]}],"metadata":{"role":"symbol","externalID":"s:13AmiiboService0A0V8PlatformV6switchSayAC4GameVGvp","title":"switch","roleHeading":"Instance Property","symbolKind":"property","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"`switch`"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V4GameV","text":"Game"},{"kind":"text","text":"]"}],"modules":[{"name":"AmiiboService"}]},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct"]]},"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"`switch`"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Game","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","preciseIdentifier":"s:13AmiiboService0A0V4GameV"},{"kind":"text","text":"]"}]}],"kind":"declarations"}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct":{"title":"Amiibo.Platform","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct","navigatorTitle":[{"text":"Platform","kind":"identifier"}],"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Platform","kind":"identifier"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","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":"Wii U"},{"type":"text","text":" games related to an amiibo."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct/switch":{"title":"switch","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct\/switch","kind":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"`switch`"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V4GameV","text":"Game"},{"kind":"text","text":"]"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/switch","abstract":[{"type":"text","text":"A list of "},{"type":"codeVoice","code":"Switch"},{"type":"text","text":" games related to an amiibo."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"title":"Amiibo.Game","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/game","navigatorTitle":[{"kind":"identifier","text":"Game"}],"kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Game"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","abstract":[{"text":"A model that represents a game related to an amiibo.","type":"text"}]}}}
@@ -1 +0,0 @@
{"abstract":[{"type":"text","text":"A list of "},{"code":"Switch 2","type":"codeVoice"},{"type":"text","text":" games related to an amiibo."}],"schemaVersion":{"minor":3,"major":0,"patch":0},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/switch2","interfaceLanguage":"swift"},"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/platform-swift.struct\/switch2"]}],"metadata":{"roleHeading":"Instance Property","title":"switch2","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"switch2"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V4GameV","text":"Game"},{"kind":"text","text":"]"}],"modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A0V8PlatformV7switch2SayAC4GameVGvp","symbolKind":"property"},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"switch2"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V4GameV","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","text":"Game"},{"kind":"text","text":"]"}],"languages":["swift"]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct":{"title":"Amiibo.Platform","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct","navigatorTitle":[{"text":"Platform","kind":"identifier"}],"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Platform","kind":"identifier"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","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":"Wii U"},{"type":"text","text":" games related to an amiibo."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct/switch2":{"title":"switch2","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct\/switch2","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"switch2"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Game","preciseIdentifier":"s:13AmiiboService0A0V4GameV"},{"kind":"text","text":"]"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/switch2","kind":"symbol","abstract":[{"type":"text","text":"A list of "},{"type":"codeVoice","code":"Switch 2"},{"type":"text","text":" games related to an amiibo."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"title":"Amiibo.Game","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/game","navigatorTitle":[{"kind":"identifier","text":"Game"}],"kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Game"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","abstract":[{"text":"A model that represents a game related to an amiibo.","type":"text"}]}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"threeDS","kind":"identifier"},{"text":": [","kind":"text"},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","text":"Game","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V4GameV"},{"text":"]","kind":"text"}],"languages":["swift"]}]}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/platform-swift.struct\/threeds"],"traits":[{"interfaceLanguage":"swift"}]}],"kind":"symbol","metadata":{"roleHeading":"Instance Property","title":"threeDS","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"threeDS","kind":"identifier"},{"text":": [","kind":"text"},{"text":"Game","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V4GameV"},{"text":"]","kind":"text"}],"modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A0V8PlatformV7threeDSSayAC4GameVGvp","symbolKind":"property"},"schemaVersion":{"major":0,"minor":3,"patch":0},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/threeDS"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct"]]},"sections":[],"abstract":[{"type":"text","text":"A list of "},{"type":"codeVoice","code":"3DS"},{"type":"text","text":" games related to an amiibo."}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct":{"title":"Amiibo.Platform","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct","navigatorTitle":[{"text":"Platform","kind":"identifier"}],"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Platform","kind":"identifier"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","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":"Wii U"},{"type":"text","text":" games related to an amiibo."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct/threeDS":{"title":"threeDS","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct\/threeds","kind":"symbol","fragments":[{"text":"let","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"threeDS"},{"kind":"text","text":": ["},{"text":"Game","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V4GameV"},{"text":"]","kind":"text"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/threeDS","abstract":[{"type":"text","text":"A list of "},{"type":"codeVoice","code":"3DS"},{"type":"text","text":" games related to an amiibo."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"title":"Amiibo.Game","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/game","navigatorTitle":[{"kind":"identifier","text":"Game"}],"kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Game"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","abstract":[{"text":"A model that represents a game related to an amiibo.","type":"text"}]}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"wiiU","kind":"identifier"},{"text":": [","kind":"text"},{"text":"Game","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","preciseIdentifier":"s:13AmiiboService0A0V4GameV","kind":"typeIdentifier"},{"text":"]","kind":"text"}]}]}],"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/platform-swift.struct\/wiiu"]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"metadata":{"title":"wiiU","externalID":"s:13AmiiboService0A0V8PlatformV4wiiUSayAC4GameVGvp","modules":[{"name":"AmiiboService"}],"role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"wiiU","kind":"identifier"},{"text":": [","kind":"text"},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V4GameV","text":"Game"},{"kind":"text","text":"]"}],"roleHeading":"Instance Property","symbolKind":"property"},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/wiiU"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct"]]},"kind":"symbol","abstract":[{"text":"A list of ","type":"text"},{"code":"Wii U","type":"codeVoice"},{"text":" games related to an amiibo.","type":"text"}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct":{"title":"Amiibo.Platform","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct","navigatorTitle":[{"text":"Platform","kind":"identifier"}],"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Platform","kind":"identifier"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","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":"Wii U"},{"type":"text","text":" games related to an amiibo."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct/wiiU":{"title":"wiiU","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct\/wiiu","kind":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"wiiU"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Game","preciseIdentifier":"s:13AmiiboService0A0V4GameV"},{"kind":"text","text":"]"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/wiiU","abstract":[{"type":"text","text":"A list of "},{"code":"Wii U","type":"codeVoice"},{"type":"text","text":" games related to an amiibo."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"title":"Amiibo.Game","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/game","navigatorTitle":[{"kind":"identifier","text":"Game"}],"kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Game"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","abstract":[{"text":"A model that represents a game related to an amiibo.","type":"text"}]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]}}}
@@ -1 +0,0 @@
{"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.property"]}],"kind":"symbol","primaryContentSections":[{"declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"release"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V7ReleaseV","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","text":"Release"}]}],"kind":"declarations"}],"metadata":{"symbolKind":"property","modules":[{"name":"AmiiboService"}],"role":"symbol","roleHeading":"Instance Property","title":"release","externalID":"s:13AmiiboService0A0V7releaseAC7ReleaseVvp","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"release"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V7ReleaseV","text":"Release"}]},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"schemaVersion":{"minor":3,"patch":0,"major":0},"sections":[],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/release-swift.property"},"abstract":[{"type":"text","text":"The release dates of this amiibo across different regions."}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"title":"Amiibo.Release","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","navigatorTitle":[{"text":"Release","kind":"identifier"}],"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Release","kind":"identifier"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","abstract":[{"type":"text","text":"A model that represents the regional release dates of an amiibo."}]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/release-swift.property":{"title":"release","kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.property","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"release","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Release","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V7ReleaseV"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/release-swift.property","type":"topic","abstract":[{"type":"text","text":"The release dates of this amiibo across different regions."}]}}}
@@ -1 +0,0 @@
{"relationshipsSections":[{"identifiers":["doc:\/\/AmiiboService\/SQ","doc:\/\/AmiiboService\/SH","doc:\/\/AmiiboService\/s8SendableP","doc:\/\/AmiiboService\/s16SendableMetatypeP"],"kind":"relationships","type":"conformsTo","title":"Conforms To"}],"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Release"}],"languages":["swift"]}]},{"content":[{"level":2,"type":"heading","text":"Overview","anchor":"overview"},{"inlineContent":[{"type":"text","text":"The service provides these dates as date-only values, which are decoded as midnight UTC."}],"type":"paragraph"}],"kind":"content"}],"kind":"symbol","metadata":{"title":"Amiibo.Release","externalID":"s:13AmiiboService0A0V7ReleaseV","modules":[{"name":"AmiiboService"}],"extendedModule":"AmiiboService","role":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Release","kind":"identifier"}],"navigatorTitle":[{"text":"Release","kind":"identifier"}],"roleHeading":"Structure","symbolKind":"struct"},"schemaVersion":{"minor":3,"major":0,"patch":0},"seeAlsoSections":[{"generated":true,"identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"],"anchor":"Nested-Models","title":"Nested Models"}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","interfaceLanguage":"swift"},"topicSections":[{"generated":true,"identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/america","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/australia","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/europe","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/japan"],"anchor":"Instance-Properties","title":"Instance Properties"},{"generated":true,"identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/Equatable-Implementations"],"anchor":"Default-Implementations","title":"Default Implementations"}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"sections":[],"abstract":[{"type":"text","text":"A model that represents the regional release dates of an amiibo."}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/america":{"title":"america","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/america","role":"symbol","type":"topic","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"america","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Date","kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV"},{"text":"?","kind":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/america","kind":"symbol","abstract":[{"text":"A release date for North America, if any.","type":"text"}]},"doc://AmiiboService/SQ":{"identifier":"doc:\/\/AmiiboService\/SQ","type":"unresolvable","title":"Swift.Equatable"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/australia":{"kind":"symbol","title":"australia","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/australia","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"australia","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Date","kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV"},{"text":"?","kind":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/australia","type":"topic","abstract":[{"type":"text","text":"A release date for Australia, if any."}]},"doc://AmiiboService/s8SendableP":{"identifier":"doc:\/\/AmiiboService\/s8SendableP","type":"unresolvable","title":"Swift.Sendable"},"doc://AmiiboService/s16SendableMetatypeP":{"identifier":"doc:\/\/AmiiboService\/s16SendableMetatypeP","type":"unresolvable","title":"Swift.SendableMetatype"},"doc://AmiiboServiceLine truncated
@@ -1 +0,0 @@
{"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/!=(_:_:)"]}],"schemaVersion":{"minor":3,"patch":0,"major":0},"metadata":{"roleHeading":"Operator","title":"!=(_:_:)","role":"symbol","extendedModule":"Swift","fragments":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"!=","kind":"identifier"},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":") -> ","kind":"text"},{"text":"Bool","kind":"typeIdentifier","preciseIdentifier":"s:Sb"}],"modules":[{"relatedModules":["Swift"],"name":"AmiiboService"}],"externalID":"s:SQsRi_zRi0_zrlE2neoiySbx_xtFZ::SYNTHESIZED::s:13AmiiboService0A0V7ReleaseV","symbolKind":"op"},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/!=(_:_:)","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"kind":"symbol","primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"internalParam","text":"lhs"},{"kind":"text","text":": "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"internalParam","text":"rhs"},{"kind":"text","text":": "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","text":"Bool"}],"languages":["swift"]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/!=(_:_:)":{"title":"!=(_:_:)","kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/!=(_:_:)","role":"symbol","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/!=(_:_:)","type":"topic","abstract":[]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"title":"Amiibo.Release","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","navigatorTitle":[{"text":"Release","kind":"identifier"}],"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Release","kind":"identifier"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","abstract":[{"type":"text","text":"A model that represents the regional release dates of an amiibo."}]}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"america"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV","text":"Date"},{"kind":"text","text":"?"}],"languages":["swift"]}],"kind":"declarations"}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/america"],"traits":[{"interfaceLanguage":"swift"}]}],"kind":"symbol","schemaVersion":{"minor":3,"major":0,"patch":0},"metadata":{"externalID":"s:13AmiiboService0A0V7ReleaseV7america10Foundation4DateVSgvp","title":"america","modules":[{"name":"AmiiboService"}],"role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"america"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV","text":"Date"},{"kind":"text","text":"?"}],"roleHeading":"Instance Property","symbolKind":"property"},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/america","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"sections":[],"abstract":[{"type":"text","text":"A release date for North America, if any."}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"title":"Amiibo.Release","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","navigatorTitle":[{"text":"Release","kind":"identifier"}],"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Release","kind":"identifier"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","abstract":[{"type":"text","text":"A model that represents the regional release dates of an amiibo."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/america":{"title":"america","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/america","role":"symbol","type":"topic","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"america","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Date","kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV"},{"text":"?","kind":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/america","kind":"symbol","abstract":[{"text":"A release date for North America, if any.","type":"text"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"}}}
@@ -1 +0,0 @@
{"abstract":[{"type":"text","text":"A release date for Australia, if any."}],"schemaVersion":{"minor":3,"major":0,"patch":0},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/australia"},"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/australia"]}],"metadata":{"externalID":"s:13AmiiboService0A0V7ReleaseV9australia10Foundation4DateVSgvp","role":"symbol","title":"australia","roleHeading":"Instance Property","symbolKind":"property","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"australia","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Date","kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV"},{"text":"?","kind":"text"}],"modules":[{"name":"AmiiboService"}]},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"primaryContentSections":[{"declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"australia","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Date","kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV"},{"text":"?","kind":"text"}]}],"kind":"declarations"}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/australia":{"kind":"symbol","title":"australia","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/australia","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"australia","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Date","kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV"},{"text":"?","kind":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/australia","type":"topic","abstract":[{"type":"text","text":"A release date for Australia, if any."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"title":"Amiibo.Release","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","navigatorTitle":[{"text":"Release","kind":"identifier"}],"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Release","kind":"identifier"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","abstract":[{"type":"text","text":"A model that represents the regional release dates of an amiibo."}]}}}
@@ -1 +0,0 @@
{"sections":[],"topicSections":[{"title":"Operators","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/!=(_:_:)"],"generated":true,"anchor":"Operators"}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/equatable-implementations"]}],"schemaVersion":{"patch":0,"major":0,"minor":3},"metadata":{"modules":[{"name":"AmiiboService"}],"roleHeading":"API Collection","role":"collectionGroup","title":"Equatable Implementations"},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/Equatable-Implementations"},"kind":"article","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/!=(_:_:)":{"title":"!=(_:_:)","kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/!=(_:_:)","role":"symbol","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/!=(_:_:)","type":"topic","abstract":[]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"title":"Amiibo.Release","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","navigatorTitle":[{"text":"Release","kind":"identifier"}],"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Release","kind":"identifier"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","abstract":[{"type":"text","text":"A model that represents the regional release dates of an amiibo."}]}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"europe","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Date","preciseIdentifier":"s:10Foundation4DateV","kind":"typeIdentifier"},{"text":"?","kind":"text"}]}]}],"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/europe"]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"metadata":{"title":"europe","externalID":"s:13AmiiboService0A0V7ReleaseV6europe10Foundation4DateVSgvp","modules":[{"name":"AmiiboService"}],"role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"kind":"identifier","text":"europe"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV","text":"Date"},{"kind":"text","text":"?"}],"roleHeading":"Instance Property","symbolKind":"property"},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/europe","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A release date for Europe, if any."}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/europe":{"title":"europe","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/europe","role":"symbol","type":"topic","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"europe","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Date","kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV"},{"text":"?","kind":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/europe","kind":"symbol","abstract":[{"type":"text","text":"A release date for Europe, if any."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"title":"Amiibo.Release","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","navigatorTitle":[{"text":"Release","kind":"identifier"}],"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Release","kind":"identifier"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","abstract":[{"type":"text","text":"A model that represents the regional release dates of an amiibo."}]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"japan"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV","text":"Date"},{"text":"?","kind":"text"}]}]}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/japan"],"traits":[{"interfaceLanguage":"swift"}]}],"kind":"symbol","schemaVersion":{"minor":3,"major":0,"patch":0},"metadata":{"roleHeading":"Instance Property","title":"japan","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"japan"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Date","preciseIdentifier":"s:10Foundation4DateV"},{"kind":"text","text":"?"}],"modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A0V7ReleaseV5japan10Foundation4DateVSgvp","symbolKind":"property"},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/japan","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"sections":[],"abstract":[{"type":"text","text":"A release date for Japan, if any."}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/japan":{"title":"japan","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/japan","role":"symbol","type":"topic","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"japan","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Date","kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV"},{"text":"?","kind":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/japan","kind":"symbol","abstract":[{"type":"text","text":"A release date for Japan, if any."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"title":"Amiibo.Release","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","navigatorTitle":[{"text":"Release","kind":"identifier"}],"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Release","kind":"identifier"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","abstract":[{"type":"text","text":"A model that represents the regional release dates of an amiibo."}]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"series"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"languages":["swift"],"platforms":["macOS"]}]}],"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/series"]}],"schemaVersion":{"major":0,"patch":0,"minor":3},"metadata":{"roleHeading":"Instance Property","title":"series","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"series"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A0V6seriesSSvp","symbolKind":"property"},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/series"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"kind":"symbol","abstract":[{"type":"text","text":"The name of the amiibo series this amiibo belongs to."}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/series":{"title":"series","url":"\/documentation\/amiiboservice\/amiibo\/series","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"series"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/series","kind":"symbol","abstract":[{"type":"text","text":"The name of the amiibo series this amiibo belongs to."}]}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"tail","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}]}]}],"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/tail"]}],"schemaVersion":{"minor":3,"patch":0,"major":0},"metadata":{"roleHeading":"Instance Property","title":"tail","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"tail","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A0V4tailSSvp","symbolKind":"property"},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/tail"},"abstract":[{"type":"text","text":"The last 8 hexadecimal characters of the amiibo identifier."}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/tail":{"title":"tail","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/tail","kind":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"tail"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"type":"topic","abstract":[{"type":"text","text":"The last 8 hexadecimal characters of the amiibo identifier."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/tail"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"type","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"}]}],"kind":"declarations"}],"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/type"]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"metadata":{"roleHeading":"Instance Property","title":"type","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"type","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"}],"modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A0V4typeSSvp","symbolKind":"property"},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/type"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"kind":"symbol","abstract":[{"type":"text","text":"The type of this amiibo (e.g., Figure, Card, Yarn, Band)."}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/type":{"title":"type","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/type","kind":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"type"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"type":"topic","abstract":[{"type":"text","text":"The type of this amiibo (e.g., Figure, Card, Yarn, Band)."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/type"}}}
@@ -1 +0,0 @@
{"relationshipsSections":[{"kind":"relationships","identifiers":["doc:\/\/AmiiboService\/SQ","doc:\/\/AmiiboService\/SH","doc:\/\/AmiiboService\/s8SendableP","doc:\/\/AmiiboService\/s16SendableMetatypeP"],"type":"conformsTo","title":"Conforms To"}],"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"text":"Usage","kind":"identifier"}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"kind":"symbol","metadata":{"title":"Amiibo.Usage","externalID":"s:13AmiiboService0A0V5UsageV","modules":[{"name":"AmiiboService"}],"extendedModule":"AmiiboService","role":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Usage"}],"navigatorTitle":[{"kind":"identifier","text":"Usage"}],"roleHeading":"Structure","symbolKind":"struct"},"seeAlsoSections":[{"generated":true,"anchor":"Nested-Models","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"],"title":"Nested Models"}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/usage"]}],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"},"topicSections":[{"generated":true,"anchor":"Instance-Properties","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/explanation","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/isWriteable"],"title":"Instance Properties"},{"generated":true,"anchor":"Default-Implementations","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/Equatable-Implementations"],"title":"Default Implementations"}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"sections":[],"abstract":[{"type":"text","text":"A model that represents the usage of an amiibo within a certain game."}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/SQ":{"type":"unresolvable","identifier":"doc:\/\/AmiiboService\/SQ","title":"Swift.Equatable"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage/Equatable-Implementations":{"abstract":[],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/Equatable-Implementations","title":"Equatable Implementations","role":"collectionGroup","kind":"article","type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/usage\/equatable-implementations"},"doc://AmiiboService/s8SendableP":{"type":"unresolvable","identifier":"doc:\/\/AmiiboService\/s8SendableP","title":"Swift.Sendable"},"doc://AmiiboService/s16SendableMetatypeP":{"type":"unresolvable","identifier":"doc:\/\/AmiiboService\/s16SendableMetatypeP","title":"Swift.SendableMetatype"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"title":"Amiibo.Game","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/game","navigatorTitle":[{"kind":"identifier","text":"Game"}],"kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Game"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","abstract":[{"text":"A model that represents a game related to an amiibo.","type":"text"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct":{"title":"Amiibo.Platform","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct","navigatorTitle":[{"text":"Platform","kind":"identifier"}],"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Platform","kind":"identifier"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","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":"Wii U"},{"type":"text","text":" games related to an amiibo."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"navigatorTiLine truncated
@@ -1 +0,0 @@
{"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/usage\/!=(_:_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"kind":"symbol","metadata":{"externalID":"s:SQsRi_zRi0_zrlE2neoiySbx_xtFZ::SYNTHESIZED::s:13AmiiboService0A0V5UsageV","title":"!=(_:_:)","modules":[{"relatedModules":["Swift"],"name":"AmiiboService"}],"extendedModule":"Swift","role":"symbol","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","text":"Bool"}],"roleHeading":"Operator","symbolKind":"op"},"schemaVersion":{"minor":3,"patch":0,"major":0},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/!=(_:_:)"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"]]},"sections":[],"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"!=","kind":"identifier"},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"text":"lhs","kind":"internalParam"},{"text":": ","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"text":"rhs","kind":"internalParam"},{"text":": ","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":") -> ","kind":"text"},{"text":"Bool","kind":"typeIdentifier","preciseIdentifier":"s:Sb"}],"languages":["swift"]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage/!=(_:_:)":{"kind":"symbol","title":"!=(_:_:)","url":"\/documentation\/amiiboservice\/amiibo\/usage\/!=(_:_:)","role":"symbol","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","text":"Bool"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/!=(_:_:)","type":"topic","abstract":[]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"navigatorTitle":[{"kind":"identifier","text":"Usage"}],"title":"Amiibo.Usage","url":"\/documentation\/amiiboservice\/amiibo\/usage","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Usage"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","kind":"symbol","abstract":[{"type":"text","text":"A model that represents the usage of an amiibo within a certain game."}]}}}
@@ -1 +0,0 @@
{"topicSections":[{"generated":true,"identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/!=(_:_:)"],"anchor":"Operators","title":"Operators"}],"kind":"article","metadata":{"roleHeading":"API Collection","modules":[{"name":"AmiiboService"}],"role":"collectionGroup","title":"Equatable Implementations"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"]]},"schemaVersion":{"minor":3,"patch":0,"major":0},"sections":[],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/Equatable-Implementations"},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/usage\/equatable-implementations"]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"navigatorTitle":[{"kind":"identifier","text":"Usage"}],"title":"Amiibo.Usage","url":"\/documentation\/amiiboservice\/amiibo\/usage","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Usage"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","kind":"symbol","abstract":[{"type":"text","text":"A model that represents the usage of an amiibo within a certain game."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage/!=(_:_:)":{"kind":"symbol","title":"!=(_:_:)","url":"\/documentation\/amiiboservice\/amiibo\/usage\/!=(_:_:)","role":"symbol","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","text":"Bool"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/!=(_:_:)","type":"topic","abstract":[]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"explanation"},{"kind":"text","text":": "},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"}]}]}],"sections":[],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/usage\/explanation"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"minor":3,"major":0,"patch":0},"metadata":{"roleHeading":"Instance Property","title":"explanation","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"explanation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A0V5UsageV11explanationSSvp","symbolKind":"property"},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/explanation","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"]]},"kind":"symbol","abstract":[{"text":"A description of how the amiibo is used within the game.","type":"text"}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage/explanation":{"title":"explanation","url":"\/documentation\/amiiboservice\/amiibo\/usage\/explanation","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"explanation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/explanation","kind":"symbol","abstract":[{"type":"text","text":"A description of how the amiibo is used within the game."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"navigatorTitle":[{"kind":"identifier","text":"Usage"}],"title":"Amiibo.Usage","url":"\/documentation\/amiiboservice\/amiibo\/usage","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Usage"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","kind":"symbol","abstract":[{"type":"text","text":"A model that represents the usage of an amiibo within a certain game."}]}}}
@@ -1 +0,0 @@
{"abstract":[{"type":"text","text":"A flag that indicates whether the amiibo can save game data."}],"schemaVersion":{"minor":3,"major":0,"patch":0},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/isWriteable"},"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/usage\/iswriteable"]}],"metadata":{"role":"symbol","externalID":"s:13AmiiboService0A0V5UsageV11isWriteableSbvp","title":"isWriteable","roleHeading":"Instance Property","symbolKind":"property","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"isWriteable","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Bool","kind":"typeIdentifier","preciseIdentifier":"s:Sb"}],"modules":[{"name":"AmiiboService"}]},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"kind":"identifier","text":"isWriteable"},{"text":": ","kind":"text"},{"text":"Bool","preciseIdentifier":"s:Sb","kind":"typeIdentifier"}],"languages":["swift"]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","title":"Amiibo","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"navigatorTitle":[{"kind":"identifier","text":"Usage"}],"title":"Amiibo.Usage","url":"\/documentation\/amiiboservice\/amiibo\/usage","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Usage"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","kind":"symbol","abstract":[{"type":"text","text":"A model that represents the usage of an amiibo within a certain game."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage/isWriteable":{"abstract":[{"type":"text","text":"A flag that indicates whether the amiibo can save game data."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/isWriteable","title":"isWriteable","role":"symbol","kind":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"isWriteable"},{"kind":"text","text":": "},{"text":"Bool","kind":"typeIdentifier","preciseIdentifier":"s:Sb"}],"type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/usage\/iswriteable"}}}
@@ -1 +0,0 @@
{"relationshipsSections":[{"kind":"relationships","identifiers":["doc:\/\/AmiiboService\/s8SendableP","doc:\/\/AmiiboService\/s16SendableMetatypeP"],"type":"inheritsFrom","title":"Inherits From"},{"kind":"relationships","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient"],"type":"conformingTypes","title":"Conforming Types"}],"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"text":"protocol","kind":"keyword"},{"text":" ","kind":"text"},{"text":"AmiiboClient","kind":"identifier"},{"text":" : ","kind":"text"},{"text":"Sendable","kind":"typeIdentifier","preciseIdentifier":"s:s8SendableP"}],"languages":["swift"]}]},{"kind":"content","content":[{"type":"heading","anchor":"overview","text":"Overview","level":2},{"type":"paragraph","inlineContent":[{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient","type":"reference","isActive":true},{"type":"text","text":" is the default implementation. Conform to this protocol to provide another one, such as a mock for tests. Conforming types must be "},{"code":"Sendable","type":"codeVoice"},{"type":"text","text":"."}]}]}],"sections":[],"topicSections":[{"anchor":"Amiibo-endpoints","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getAmiibos(by:)","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getAmiiboSeries(by:)","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getAmiiboTypes(by:)"],"title":"Amiibo endpoints"},{"anchor":"Game-endpoints","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getGameCharacters(by:)","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getGameSeries(by:)"],"title":"Game endpoints"},{"anchor":"System-endpoints","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getLastUpdated()"],"title":"System endpoints"}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiiboclient"]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"seeAlsoSections":[{"generated":true,"anchor":"Clients","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient"],"title":"Clients"}],"metadata":{"roleHeading":"Protocol","title":"AmiiboClient","role":"symbol","fragments":[{"text":"protocol","kind":"keyword"},{"text":" ","kind":"text"},{"text":"AmiiboClient","kind":"identifier"}],"modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A6ClientP","symbolKind":"protocol","navigatorTitle":[{"kind":"identifier","text":"AmiiboClient"}]},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService"]]},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient"},"abstract":[{"type":"text","text":"A protocol that defines a client that fetches data from the Amiibo API."}],"references":{"doc://AmiiboService/s8SendableP":{"type":"unresolvable","identifier":"doc:\/\/AmiiboService\/s8SendableP","title":"Swift.Sendable"},"doc://AmiiboService/documentation/AmiiboService/AmiiboClient/getAmiiboTypes(by:)":{"title":"getAmiiboTypes(by:)","required":true,"url":"\/documentation\/amiiboservice\/amiiboclient\/getamiibotypes(by:)","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"getAmiiboTypes"},{"kind":"text","text":"("},{"kind":"externalParam","text":"by"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A10TypeFilterV","text":"AmiiboTypeFilter"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"},{"kind":"text","text":" "},{"kind":"keyword","text":"throws"},{"kind":"text","text":"("},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0aB5ErrorO","text":"AmiiboServiceError"},{"kind":"text","text":") -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A4TypeV","text":"AmiiboType"},{"kind":"text","text":"]"}],"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getAmiiboTypes(by:)","abstract":[{"type":"text","text":"Gets a list of amiibo types based on a given filter."}]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/s16SendableMetatypeP":{"type":"unresolvable","identifier":"doc:\/\/AmiiboService\/s16SendableMetatypeP","title":"Swift.SendableMetatype"},"https://www.amiiboapi.org":{"titleInlineContent":[{"type":"text","text":"Amiibo API"}],"url":"https:\/\/www.amiiboapi.org","type":"link","identifier":"https:\/\/www.amiiboapi.org","title":"Amiibo API"},"doc://AmiiboService/documentationLine truncated
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"text":"getAmiibos","kind":"identifier"},{"kind":"text","text":"("},{"text":"by","kind":"externalParam"},{"kind":"text","text":" "},{"text":"filter","kind":"internalParam"},{"kind":"text","text":": "},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","text":"AmiiboFilter","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A6FilterV"},{"kind":"text","text":") "},{"text":"async","kind":"keyword"},{"kind":"text","text":" "},{"text":"throws","kind":"keyword"},{"text":"(","kind":"text"},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboServiceError","text":"AmiiboServiceError","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0aB5ErrorO"},{"text":") -> [","kind":"text"},{"text":"Amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","preciseIdentifier":"s:13AmiiboService0A0V","kind":"typeIdentifier"},{"text":"]","kind":"text"}]}]},{"kind":"parameters","parameters":[{"name":"filter","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"A filter to remove unwanted items from the result."}]}]}]},{"kind":"content","content":[{"text":"Return Value","anchor":"return-value","level":2,"type":"heading"},{"type":"paragraph","inlineContent":[{"text":"A list of filtered amiibo items.","type":"text"}]}]},{"kind":"content","content":[{"type":"heading","anchor":"discussion","text":"Discussion","level":2},{"type":"aside","style":"note","content":[{"inlineContent":[{"type":"text","text":"An "},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboServiceError","isActive":true},{"type":"text","text":" error in case some issue is encountered while generating the result."}],"type":"paragraph"}],"name":"Throws"}]}],"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiiboclient\/getamiibos(by:)"]}],"schemaVersion":{"minor":3,"major":0,"patch":0},"seeAlsoSections":[{"generated":true,"anchor":"Amiibo-endpoints","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getAmiiboSeries(by:)","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getAmiiboTypes(by:)"],"title":"Amiibo endpoints"}],"metadata":{"roleHeading":"Instance Method","title":"getAmiibos(by:)","required":true,"role":"symbol","fragments":[{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"getAmiibos","kind":"identifier"},{"kind":"text","text":"("},{"kind":"externalParam","text":"by"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A6FilterV","text":"AmiiboFilter"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"},{"kind":"text","text":" "},{"kind":"keyword","text":"throws"},{"kind":"text","text":"("},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0aB5ErrorO","text":"AmiiboServiceError"},{"kind":"text","text":") -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V","text":"Amiibo"},{"kind":"text","text":"]"}],"modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A6ClientP10getAmiibos2bySayAA0A0VGAA0A6FilterV_tYaAA0aB5ErrorOYKF","symbolKind":"method"},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient"]]},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getAmiibos(by:)"},"abstract":[{"text":"Gets a list of amiibo items based on a given filter.","type":"text"}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboService":{"title":"AmiiboService","role":"symbol","url":"\/documentation\/amiiboservice\/amiiboservice","navigatorTitle":[{"kind":"identifier","text":"AmiiboService"}],"kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboService"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboService","abstract":[{"type":"text","text":"The entry point for fetching data from the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","kind":"symbol","role":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboFilter"}],"type":"topic","abstract":[{"type":"text","text":"A filter for amiibo requests."}],"title":"AmiiboFilter","navigatorTitle":[{"kind":"identifier","text":"AmiiboFilter"}],"url":"\/documentation\/amiiboservice\/amiibofilter"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentatLine truncated
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"getAmiiboSeries"},{"kind":"text","text":"("},{"kind":"externalParam","text":"by"},{"kind":"text","text":" "},{"kind":"internalParam","text":"filter"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"AmiiboSeriesFilter","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboSeriesFilter","preciseIdentifier":"s:13AmiiboService0A12SeriesFilterV"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"},{"kind":"text","text":" "},{"kind":"keyword","text":"throws"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"AmiiboServiceError","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboServiceError","preciseIdentifier":"s:13AmiiboService0aB5ErrorO"},{"kind":"text","text":") -> ["},{"kind":"typeIdentifier","text":"AmiiboSeries","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboSeries","preciseIdentifier":"s:13AmiiboService0A6SeriesV"},{"kind":"text","text":"]"}],"languages":["swift"]}]},{"kind":"parameters","parameters":[{"content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"A filter to remove unwanted items from the result."}]}],"name":"filter"}]},{"content":[{"level":2,"type":"heading","text":"Return Value","anchor":"return-value"},{"inlineContent":[{"type":"text","text":"A list of filtered amiibo series."}],"type":"paragraph"}],"kind":"content"},{"content":[{"level":2,"type":"heading","text":"Discussion","anchor":"discussion"},{"style":"note","type":"aside","content":[{"type":"paragraph","inlineContent":[{"text":"An ","type":"text"},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboServiceError","isActive":true},{"type":"text","text":" error in case some issue is encountered while generating the result."}]}],"name":"Throws"}],"kind":"content"}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiiboclient\/getamiiboseries(by:)"]}],"kind":"symbol","metadata":{"title":"getAmiiboSeries(by:)","externalID":"s:13AmiiboService0A6ClientP03getA6Series2bySayAA0aE0VGAA0aE6FilterV_tYaAA0aB5ErrorOYKF","required":true,"modules":[{"name":"AmiiboService"}],"role":"symbol","fragments":[{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"getAmiiboSeries","kind":"identifier"},{"text":"(","kind":"text"},{"text":"by","kind":"externalParam"},{"text":": ","kind":"text"},{"text":"AmiiboSeriesFilter","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A12SeriesFilterV"},{"text":") ","kind":"text"},{"text":"async","kind":"keyword"},{"text":" ","kind":"text"},{"text":"throws","kind":"keyword"},{"text":"(","kind":"text"},{"text":"AmiiboServiceError","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0aB5ErrorO"},{"text":") -> [","kind":"text"},{"text":"AmiiboSeries","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A6SeriesV"},{"text":"]","kind":"text"}],"roleHeading":"Instance Method","symbolKind":"method"},"schemaVersion":{"minor":3,"major":0,"patch":0},"seeAlsoSections":[{"generated":true,"identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getAmiibos(by:)","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getAmiiboTypes(by:)"],"anchor":"Amiibo-endpoints","title":"Amiibo endpoints"}],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getAmiiboSeries(by:)","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient"]]},"sections":[],"abstract":[{"type":"text","text":"Gets a list of amiibo series based on a given filter."}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboClient/getAmiiboTypes(by:)":{"title":"getAmiiboTypes(by:)","required":true,"url":"\/documentation\/amiiboservice\/amiiboclient\/getamiibotypes(by:)","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"getAmiiboTypes"},{"kind":"text","text":"("},{"kind":"externalParam","text":"by"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A10TypeFilterV","text":"AmiiboTypeFilter"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"},{"kind":"text","text":" "},{"kind":"keyword","text":"throws"},{"kind":"text","text":"("},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0aB5ErrorO","text":"AmiiboServiceError"},{"kind":"text","text":") -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A4TypeV","text":"AmiiboType"},{"kind":"text","text":"]"}],"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getAmiiboTypes(by:)","abstract":[{"typeLine truncated
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"getAmiiboTypes","kind":"identifier"},{"text":"(","kind":"text"},{"text":"by","kind":"externalParam"},{"text":" ","kind":"text"},{"text":"filter","kind":"internalParam"},{"text":": ","kind":"text"},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboTypeFilter","text":"AmiiboTypeFilter","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A10TypeFilterV"},{"text":") ","kind":"text"},{"text":"async","kind":"keyword"},{"text":" ","kind":"text"},{"text":"throws","kind":"keyword"},{"text":"(","kind":"text"},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboServiceError","text":"AmiiboServiceError","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0aB5ErrorO"},{"text":") -> [","kind":"text"},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboType","text":"AmiiboType","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A4TypeV"},{"text":"]","kind":"text"}],"languages":["swift"]}]},{"kind":"parameters","parameters":[{"content":[{"inlineContent":[{"type":"text","text":"A filter to remove unwanted items from the result."}],"type":"paragraph"}],"name":"filter"}]},{"content":[{"type":"heading","anchor":"return-value","text":"Return Value","level":2},{"type":"paragraph","inlineContent":[{"text":"A list of filtered amiibo types.","type":"text"}]}],"kind":"content"},{"content":[{"type":"heading","anchor":"discussion","text":"Discussion","level":2},{"type":"aside","style":"note","content":[{"inlineContent":[{"type":"text","text":"An "},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboServiceError","type":"reference","isActive":true},{"type":"text","text":" error in case some issue is encountered while generating the result."}],"type":"paragraph"}],"name":"Throws"}],"kind":"content"}],"sections":[],"variants":[{"paths":["\/documentation\/amiiboservice\/amiiboclient\/getamiibotypes(by:)"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"seeAlsoSections":[{"generated":true,"identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getAmiibos(by:)","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getAmiiboSeries(by:)"],"anchor":"Amiibo-endpoints","title":"Amiibo endpoints"}],"metadata":{"roleHeading":"Instance Method","required":true,"title":"getAmiiboTypes(by:)","role":"symbol","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"getAmiiboTypes"},{"text":"(","kind":"text"},{"text":"by","kind":"externalParam"},{"text":": ","kind":"text"},{"text":"AmiiboTypeFilter","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A10TypeFilterV"},{"text":") ","kind":"text"},{"text":"async","kind":"keyword"},{"text":" ","kind":"text"},{"text":"throws","kind":"keyword"},{"text":"(","kind":"text"},{"text":"AmiiboServiceError","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0aB5ErrorO"},{"text":") -> [","kind":"text"},{"kind":"typeIdentifier","text":"AmiiboType","preciseIdentifier":"s:13AmiiboService0A4TypeV"},{"kind":"text","text":"]"}],"modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A6ClientP03getA5Types2bySayAA0A4TypeVGAA0aG6FilterV_tYaAA0aB5ErrorOYKF","symbolKind":"method"},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient"]]},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getAmiiboTypes(by:)","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Gets a list of amiibo types based on a given filter."}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboService":{"title":"AmiiboService","role":"symbol","url":"\/documentation\/amiiboservice\/amiiboservice","navigatorTitle":[{"kind":"identifier","text":"AmiiboService"}],"kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboService"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboService","abstract":[{"type":"text","text":"The entry point for fetching data from the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboServiceError":{"title":"AmiiboServiceError","kind":"symbol","url":"\/documentation\/amiiboservice\/amiiboserviceerror","role":"symbol","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboServiceError"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboServiceError","navigatorTitle":[{"kind":"identifier","text":"AmiiboServiceError"}],"type":"topic","abstract":[{"text":"An error thrown by ","type":"text"},{"identifier":"doc:\/\/AmiiboLine truncated
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"getGameCharacters","kind":"identifier"},{"text":"(","kind":"text"},{"text":"by","kind":"externalParam"},{"text":" ","kind":"text"},{"text":"filter","kind":"internalParam"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:13AmiiboService19GameCharacterFilterV","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/GameCharacterFilter","text":"GameCharacterFilter","kind":"typeIdentifier"},{"text":") ","kind":"text"},{"text":"async","kind":"keyword"},{"text":" ","kind":"text"},{"text":"throws","kind":"keyword"},{"text":"(","kind":"text"},{"preciseIdentifier":"s:13AmiiboService0aB5ErrorO","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboServiceError","text":"AmiiboServiceError","kind":"typeIdentifier"},{"text":") -> [","kind":"text"},{"preciseIdentifier":"s:13AmiiboService13GameCharacterV","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/GameCharacter","text":"GameCharacter","kind":"typeIdentifier"},{"text":"]","kind":"text"}]}]},{"parameters":[{"name":"filter","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"A filter to remove unwanted items from the result."}]}]}],"kind":"parameters"},{"kind":"content","content":[{"type":"heading","level":2,"text":"Return Value","anchor":"return-value"},{"type":"paragraph","inlineContent":[{"type":"text","text":"A list of filtered game characters."}]}]},{"kind":"content","content":[{"type":"heading","level":2,"text":"Discussion","anchor":"discussion"},{"type":"aside","name":"Throws","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"An "},{"isActive":true,"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboServiceError","type":"reference"},{"type":"text","text":" error in case some issue is encountered while generating the result."}]}],"style":"note"}]}],"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiiboclient\/getgamecharacters(by:)"]}],"schemaVersion":{"patch":0,"minor":3,"major":0},"seeAlsoSections":[{"title":"Game endpoints","anchor":"Game-endpoints","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getGameSeries(by:)"],"generated":true}],"metadata":{"roleHeading":"Instance Method","required":true,"title":"getGameCharacters(by:)","role":"symbol","fragments":[{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"getGameCharacters","kind":"identifier"},{"text":"(","kind":"text"},{"text":"by","kind":"externalParam"},{"text":": ","kind":"text"},{"text":"GameCharacterFilter","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService19GameCharacterFilterV"},{"text":") ","kind":"text"},{"text":"async","kind":"keyword"},{"text":" ","kind":"text"},{"text":"throws","kind":"keyword"},{"text":"(","kind":"text"},{"text":"AmiiboServiceError","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0aB5ErrorO"},{"text":") -> [","kind":"text"},{"text":"GameCharacter","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService13GameCharacterV"},{"text":"]","kind":"text"}],"modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A6ClientP17getGameCharacters2bySayAA0E9CharacterVGAA0eH6FilterV_tYaAA0aB5ErrorOYKF","symbolKind":"method"},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getGameCharacters(by:)","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient"]]},"kind":"symbol","abstract":[{"text":"Gets a list of game characters based on a given filter.","type":"text"}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboServiceError":{"title":"AmiiboServiceError","kind":"symbol","url":"\/documentation\/amiiboservice\/amiiboserviceerror","role":"symbol","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboServiceError"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboServiceError","navigatorTitle":[{"kind":"identifier","text":"AmiiboServiceError"}],"type":"topic","abstract":[{"text":"An error thrown by ","type":"text"},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboService","type":"reference","isActive":true},{"text":" and ","type":"text"},{"isActive":true,"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient"},{"text":" methods.","type":"text"}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboService":{"title":"AmiiboService","role":"symbol","url":"\/documentation\/amiiboservice\/amiiboservice","navigatorTitle":[{"kind":"identifier","text":"AmiiboService"}],"kind":"symbol","fragments":[{"kind":"keyword","text":"struct"Line truncated
@@ -1 +0,0 @@
{"seeAlsoSections":[{"title":"Game endpoints","generated":true,"anchor":"Game-endpoints","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getGameCharacters(by:)"]}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiiboclient\/getgameseries(by:)"]}],"kind":"symbol","primaryContentSections":[{"declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"getGameSeries"},{"kind":"text","text":"("},{"kind":"externalParam","text":"by"},{"kind":"text","text":" "},{"kind":"internalParam","text":"filter"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService16GameSeriesFilterV","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/GameSeriesFilter","text":"GameSeriesFilter"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"},{"kind":"text","text":" "},{"kind":"keyword","text":"throws"},{"kind":"text","text":"("},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0aB5ErrorO","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboServiceError","text":"AmiiboServiceError"},{"kind":"text","text":") -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService10GameSeriesV","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/GameSeries","text":"GameSeries"},{"kind":"text","text":"]"}]}],"kind":"declarations"},{"kind":"parameters","parameters":[{"content":[{"inlineContent":[{"type":"text","text":"A filter to remove unwanted items from the result."}],"type":"paragraph"}],"name":"filter"}]},{"kind":"content","content":[{"anchor":"return-value","type":"heading","text":"Return Value","level":2},{"inlineContent":[{"type":"text","text":"A list of filtered game series."}],"type":"paragraph"}]},{"kind":"content","content":[{"anchor":"discussion","type":"heading","text":"Discussion","level":2},{"content":[{"inlineContent":[{"type":"text","text":"An "},{"type":"reference","isActive":true,"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboServiceError"},{"type":"text","text":" error in case some issue is encountered while generating the result."}],"type":"paragraph"}],"name":"Throws","type":"aside","style":"note"}]}],"metadata":{"required":true,"title":"getGameSeries(by:)","externalID":"s:13AmiiboService0A6ClientP13getGameSeries2bySayAA0eF0VGAA0eF6FilterV_tYaAA0aB5ErrorOYKF","modules":[{"name":"AmiiboService"}],"role":"symbol","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"getGameSeries"},{"kind":"text","text":"("},{"kind":"externalParam","text":"by"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService16GameSeriesFilterV","text":"GameSeriesFilter"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"},{"kind":"text","text":" "},{"kind":"keyword","text":"throws"},{"kind":"text","text":"("},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0aB5ErrorO","text":"AmiiboServiceError"},{"kind":"text","text":") -> ["},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService10GameSeriesV","text":"GameSeries"},{"kind":"text","text":"]"}],"roleHeading":"Instance Method","symbolKind":"method"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient"]]},"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getGameSeries(by:)"},"abstract":[{"type":"text","text":"Gets a list of game series based on a given filter."}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboClient/getGameSeries(by:)":{"title":"getGameSeries(by:)","kind":"symbol","required":true,"url":"\/documentation\/amiiboservice\/amiiboclient\/getgameseries(by:)","role":"symbol","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"getGameSeries"},{"kind":"text","text":"("},{"kind":"externalParam","text":"by"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"GameSeriesFilter","preciseIdentifier":"s:13AmiiboService16GameSeriesFilterV"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"},{"kind":"text","text":" "},{"kind":"keyword","text":"throws"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"AmiiboServiceError","preciseIdentifier":"s:13AmiiboService0aB5ErrorO"},{"kind":"text","text":") -> ["},{"kind":"typeIdentifier","text":"GameSeries","preciseIdentifier":"s:13AmiiboService10GameSeriesV"},{"kind":"text","text":"]"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getGameSeries(by:)","type":"topic","abstract":[{"type":"text","text":"Gets a list of game series based on a given filter."}]},"doc://AmiiboService/doLine truncated
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"getLastUpdated","kind":"identifier"},{"text":"() ","kind":"text"},{"text":"async","kind":"keyword"},{"text":" ","kind":"text"},{"text":"throws","kind":"keyword"},{"text":"(","kind":"text"},{"preciseIdentifier":"s:13AmiiboService0aB5ErrorO","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboServiceError","text":"AmiiboServiceError","kind":"typeIdentifier"},{"text":") -> ","kind":"text"},{"preciseIdentifier":"s:10Foundation4DateV","text":"Date","kind":"typeIdentifier"}]}]},{"kind":"content","content":[{"type":"heading","level":2,"text":"Return Value","anchor":"return-value"},{"type":"paragraph","inlineContent":[{"type":"text","text":"A last updated date, decoded as UTC."}]}]},{"kind":"content","content":[{"type":"heading","level":2,"text":"Discussion","anchor":"discussion"},{"type":"aside","name":"Throws","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"An "},{"isActive":true,"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboServiceError","type":"reference"},{"type":"text","text":" error in case some issue is encountered while generating the result."}]}],"style":"note"}]}],"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiiboclient\/getlastupdated()"]}],"schemaVersion":{"patch":0,"major":0,"minor":3},"metadata":{"title":"getLastUpdated()","externalID":"s:13AmiiboService0A6ClientP14getLastUpdated10Foundation4DateVyYaAA0aB5ErrorOYKF","required":true,"modules":[{"name":"AmiiboService"}],"role":"symbol","fragments":[{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"getLastUpdated","kind":"identifier"},{"text":"() ","kind":"text"},{"text":"async","kind":"keyword"},{"text":" ","kind":"text"},{"text":"throws","kind":"keyword"},{"text":"(","kind":"text"},{"preciseIdentifier":"s:13AmiiboService0aB5ErrorO","text":"AmiiboServiceError","kind":"typeIdentifier"},{"text":") -> ","kind":"text"},{"preciseIdentifier":"s:10Foundation4DateV","text":"Date","kind":"typeIdentifier"}],"roleHeading":"Instance Method","symbolKind":"method"},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/getLastUpdated()"},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient"]]},"abstract":[{"type":"text","text":"Gets the date when the data was last updated."}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboClient":{"navigatorTitle":[{"text":"AmiiboClient","kind":"identifier"}],"title":"AmiiboClient","url":"\/documentation\/amiiboservice\/amiiboclient","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboClient"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient","kind":"symbol","abstract":[{"type":"text","text":"A protocol that defines a client that fetches data from the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboService":{"title":"AmiiboService","role":"symbol","url":"\/documentation\/amiiboservice\/amiiboservice","navigatorTitle":[{"kind":"identifier","text":"AmiiboService"}],"kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboService"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboService","abstract":[{"type":"text","text":"The entry point for fetching data from the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboServiceError":{"title":"AmiiboServiceError","kind":"symbol","url":"\/documentation\/amiiboservice\/amiiboserviceerror","role":"symbol","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboServiceError"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboServiceError","navigatorTitle":[{"kind":"identifier","text":"AmiiboServiceError"}],"type":"topic","abstract":[{"text":"An error thrown by ","type":"text"},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboService","type":"reference","isActive":true},{"text":" and ","type":"text"},{"isActive":true,"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient"},{"text":" methods.","type":"text"}]},"doc://AmiiboService/documentation/AmiiboServiceLine truncated
@@ -1 +0,0 @@
{"relationshipsSections":[{"kind":"relationships","identifiers":["doc:\/\/AmiiboService\/s8SendableP","doc:\/\/AmiiboService\/s16SendableMetatypeP"],"type":"conformsTo","title":"Conforms To"}],"primaryContentSections":[{"kind":"declarations","declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"AmiiboFilter","kind":"identifier"}]}]},{"kind":"content","content":[{"level":2,"text":"Overview","type":"heading","anchor":"overview"},{"inlineContent":[{"text":"Values left as ","type":"text"},{"type":"codeVoice","code":"nil"},{"text":" do not restrict the result.","type":"text"}],"type":"paragraph"}]}],"kind":"symbol","metadata":{"externalID":"s:13AmiiboService0A6FilterV","title":"AmiiboFilter","modules":[{"name":"AmiiboService"}],"role":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"AmiiboFilter","kind":"identifier"}],"navigatorTitle":[{"text":"AmiiboFilter","kind":"identifier"}],"roleHeading":"Structure","symbolKind":"struct"},"schemaVersion":{"minor":3,"major":0,"patch":0},"seeAlsoSections":[{"anchor":"Filters","generated":true,"identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboSeriesFilter","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboTypeFilter","doc:\/\/AmiiboService\/documentation\/AmiiboService\/GameCharacterFilter","doc:\/\/AmiiboService\/documentation\/AmiiboService\/GameSeriesFilter"],"title":"Filters"}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibofilter"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"},"topicSections":[{"anchor":"Initializers","generated":true,"identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/init(head:tail:identifier:name:type:series:gameCharacter:gameSeries:showGames:showUsage:)"],"title":"Initializers"},{"anchor":"Instance-Properties","generated":true,"identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/gameCharacter","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/gameSeries","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/head","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/identifier","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/name","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/series","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showGames","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showUsage","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/tail","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/type"],"title":"Instance Properties"}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService"]]},"sections":[],"abstract":[{"text":"A filter for amiibo requests.","type":"text"}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/showGames":{"title":"showGames","kind":"symbol","url":"\/documentation\/amiiboservice\/amiibofilter\/showgames","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"showGames"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":"?"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showGames","type":"topic","abstract":[{"type":"text","text":"A flag that indicates whether to include related games in "},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property","isActive":true},{"type":"text","text":". "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" means "},{"type":"codeVoice","code":"false"},{"type":"text","text":"."}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/tail":{"title":"tail","role":"symbol","url":"\/documentation\/amiiboservice\/amiibofilter\/tail","kind":"symbol","fragments":[{"text":"let","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"tail"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"text":"?","kind":"text"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/tail","abstract":[{"type":"text","text":"The last 8 hexadecimal characters of an identifier to match, if any. Shorter values match as a prefix."}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboTypeFilter":{"navigatorTitle":[{"kind":"identifier","text":"AmiiboTypeFilter"}],"title":"AmiiboTypeFilter","url":"\/documentation\/amiiboservice\/amiibotypefilter","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboTypeFilter"}],"kind":"symLine truncated
@@ -1 +0,0 @@
{"abstract":[{"type":"text","text":"A game character key or name to match, if any."}],"schemaVersion":{"minor":3,"major":0,"patch":0},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/gameCharacter"},"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibofilter\/gamecharacter"]}],"metadata":{"roleHeading":"Instance Property","title":"gameCharacter","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"gameCharacter","kind":"identifier"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"text":"?","kind":"text"}],"modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A6FilterV13gameCharacterSSSgvp","symbolKind":"property"},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"gameCharacter","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"},{"text":"?","kind":"text"}]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","kind":"symbol","role":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboFilter"}],"type":"topic","abstract":[{"type":"text","text":"A filter for amiibo requests."}],"title":"AmiiboFilter","navigatorTitle":[{"kind":"identifier","text":"AmiiboFilter"}],"url":"\/documentation\/amiiboservice\/amiibofilter"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/gameCharacter":{"title":"gameCharacter","kind":"symbol","url":"\/documentation\/amiiboservice\/amiibofilter\/gamecharacter","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"gameCharacter"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"kind":"text","text":"?"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/gameCharacter","type":"topic","abstract":[{"type":"text","text":"A game character key or name to match, if any."}]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"text":"gameSeries","kind":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"kind":"text","text":"?"}]}]}],"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibofilter\/gameseries"]}],"schemaVersion":{"minor":3,"major":0,"patch":0},"metadata":{"roleHeading":"Instance Property","title":"gameSeries","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"gameSeries"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"kind":"text","text":"?"}],"modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A6FilterV10gameSeriesSSSgvp","symbolKind":"property"},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/gameSeries"},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"abstract":[{"text":"A game series key or name to match, if any.","type":"text"}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","kind":"symbol","role":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboFilter"}],"type":"topic","abstract":[{"type":"text","text":"A filter for amiibo requests."}],"title":"AmiiboFilter","navigatorTitle":[{"kind":"identifier","text":"AmiiboFilter"}],"url":"\/documentation\/amiiboservice\/amiibofilter"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/gameSeries":{"kind":"symbol","title":"gameSeries","url":"\/documentation\/amiiboservice\/amiibofilter\/gameseries","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"gameSeries"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"?"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/gameSeries","type":"topic","abstract":[{"type":"text","text":"A game series key or name to match, if any."}]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]}}}
@@ -1 +0,0 @@
{"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"languages":["swift"],"tokens":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"text":"head","kind":"identifier"},{"kind":"text","text":": "},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"platforms":["macOS"]}]}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibofilter\/head"]}],"schemaVersion":{"patch":0,"major":0,"minor":3},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/head"},"metadata":{"externalID":"s:13AmiiboService0A6FilterV4headSSSgvp","role":"symbol","title":"head","roleHeading":"Instance Property","symbolKind":"property","fragments":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"text":"head","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"},{"kind":"text","text":"?"}],"modules":[{"name":"AmiiboService"}]},"abstract":[{"type":"text","text":"The first 8 hexadecimal characters of an identifier to match, if any. Shorter values match as a prefix."}],"kind":"symbol","sections":[],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","kind":"symbol","role":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboFilter"}],"type":"topic","abstract":[{"type":"text","text":"A filter for amiibo requests."}],"title":"AmiiboFilter","navigatorTitle":[{"kind":"identifier","text":"AmiiboFilter"}],"url":"\/documentation\/amiiboservice\/amiibofilter"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/head":{"abstract":[{"type":"text","text":"The first 8 hexadecimal characters of an identifier to match, if any. Shorter values match as a prefix."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/head","title":"head","role":"symbol","kind":"symbol","fragments":[{"text":"let","kind":"keyword"},{"kind":"text","text":" "},{"text":"head","kind":"identifier"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"?"}],"type":"topic","url":"\/documentation\/amiiboservice\/amiibofilter\/head"}}}
@@ -1 +0,0 @@
{"variants":[{"paths":["\/documentation\/amiiboservice\/amiibofilter\/identifier"],"traits":[{"interfaceLanguage":"swift"}]}],"kind":"symbol","primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"?"}],"languages":["swift"]}]}],"metadata":{"role":"symbol","title":"identifier","externalID":"s:13AmiiboService0A6FilterV10identifierSSSgvp","symbolKind":"property","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"?"}]},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"schemaVersion":{"minor":3,"major":0,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/identifier","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A full 16-character hexadecimal identifier to match, if any."}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/identifier":{"title":"identifier","role":"symbol","url":"\/documentation\/amiiboservice\/amiibofilter\/identifier","kind":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"kind":"text","text":"?"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/identifier","abstract":[{"type":"text","text":"A full 16-character hexadecimal identifier to match, if any."}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","kind":"symbol","role":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboFilter"}],"type":"topic","abstract":[{"type":"text","text":"A filter for amiibo requests."}],"title":"AmiiboFilter","navigatorTitle":[{"kind":"identifier","text":"AmiiboFilter"}],"url":"\/documentation\/amiiboservice\/amiibofilter"}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"text":"init","kind":"keyword"},{"kind":"text","text":"("},{"text":"head","kind":"externalParam"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"kind":"text","text":"? = nil, "},{"kind":"externalParam","text":"tail"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"kind":"text","text":"? = nil, "},{"text":"identifier","kind":"externalParam"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"? = nil, "},{"kind":"externalParam","text":"name"},{"kind":"text","text":": "},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"},{"text":"? = nil, ","kind":"text"},{"kind":"externalParam","text":"type"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"? = nil, "},{"kind":"externalParam","text":"series"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"? = nil, "},{"text":"gameCharacter","kind":"externalParam"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"},{"text":"? = nil, ","kind":"text"},{"text":"gameSeries","kind":"externalParam"},{"kind":"text","text":": "},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"},{"text":"? = nil, ","kind":"text"},{"text":"showGames","kind":"externalParam"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","text":"Bool"},{"kind":"text","text":"? = nil, "},{"kind":"externalParam","text":"showUsage"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","text":"Bool"},{"kind":"text","text":"? = nil)"}]}]},{"kind":"parameters","parameters":[{"name":"head","content":[{"inlineContent":[{"type":"text","text":"The first 8 hexadecimal characters of an identifier to match, if any. Shorter values match as a prefix."}],"type":"paragraph"}]},{"name":"tail","content":[{"inlineContent":[{"type":"text","text":"The last 8 hexadecimal characters of an identifier to match, if any. Shorter values match as a prefix."}],"type":"paragraph"}]},{"name":"identifier","content":[{"inlineContent":[{"type":"text","text":"A full 16-character hexadecimal identifier to match, if any."}],"type":"paragraph"}]},{"name":"name","content":[{"inlineContent":[{"type":"text","text":"An amiibo name, or part of one, to match, if any."}],"type":"paragraph"}]},{"name":"type","content":[{"inlineContent":[{"type":"text","text":"An amiibo type key or name to match, if any."}],"type":"paragraph"}]},{"name":"series","content":[{"inlineContent":[{"type":"text","text":"An amiibo series key or name to match, if any."}],"type":"paragraph"}]},{"name":"gameCharacter","content":[{"inlineContent":[{"type":"text","text":"A game character key or name to match, if any."}],"type":"paragraph"}]},{"name":"gameSeries","content":[{"inlineContent":[{"type":"text","text":"A game series key or name to match, if any."}],"type":"paragraph"}]},{"name":"showGames","content":[{"inlineContent":[{"type":"text","text":"A flag that indicates whether to include related games in "},{"type":"reference","isActive":true,"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property"},{"type":"text","text":". "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" means "},{"type":"codeVoice","code":"false"},{"type":"text","text":"."}],"type":"paragraph"}]},{"name":"showUsage","content":[{"inlineContent":[{"type":"text","text":"A flag that indicates whether to include related games and their amiibo usages in "},{"type":"reference","isActive":true,"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property"},{"type":"text","text":". "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" means "},{"type":"codeVoice","code":"false"},{"type":"text","text":"."}],"type":"paragraph"}]}]}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibofilter\/init(head:tail:identifier:name:type:series:gamecharacter:gameseries:showgames:showusage:)"],"traits":[{"interfaceLanguage":"swift"}]}],"kind":"symbol","metadata":{"title":"init(head:tail:identifier:name:type:series:gameCharacter:gameSeries:showGames:showUsage:)","externalID":"s:13AmiiboService0A6FilterV4head4tail10identifier4name4type6series13gameCharacter0J6Series9showGames0M5UsageACSSSg_A7NSbSgAOtcfc","modules":[{"name":"AmiiboService"}],"role":"symbol","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"head"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"tail"},{"kind":"text","text":": "},{"kind":"typeIdLine truncated
@@ -1 +0,0 @@
{"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibofilter\/name"]}],"kind":"symbol","primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"name"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"?"}],"platforms":["macOS"],"languages":["swift"]}]}],"metadata":{"symbolKind":"property","role":"symbol","modules":[{"name":"AmiiboService"}],"title":"name","externalID":"s:13AmiiboService0A6FilterV4nameSSSgvp","roleHeading":"Instance Property","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"name"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"text":"?","kind":"text"}]},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"schemaVersion":{"minor":3,"major":0,"patch":0},"sections":[],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/name"},"abstract":[{"type":"text","text":"An amiibo name, or part of one, to match, if any."}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/name":{"kind":"symbol","title":"name","url":"\/documentation\/amiiboservice\/amiibofilter\/name","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"text":"name","kind":"identifier"},{"kind":"text","text":": "},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"},{"kind":"text","text":"?"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/name","type":"topic","abstract":[{"text":"An amiibo name, or part of one, to match, if any.","type":"text"}]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","kind":"symbol","role":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboFilter"}],"type":"topic","abstract":[{"type":"text","text":"A filter for amiibo requests."}],"title":"AmiiboFilter","navigatorTitle":[{"kind":"identifier","text":"AmiiboFilter"}],"url":"\/documentation\/amiiboservice\/amiibofilter"}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"text":"series","kind":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"text":"?","kind":"text"}],"languages":["swift"]}]}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibofilter\/series"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"kind":"symbol","metadata":{"roleHeading":"Instance Property","title":"series","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"series"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"kind":"text","text":"?"}],"modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A6FilterV6seriesSSSgvp","symbolKind":"property"},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/series"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"sections":[],"abstract":[{"type":"text","text":"An amiibo series key or name to match, if any."}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","kind":"symbol","role":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboFilter"}],"type":"topic","abstract":[{"type":"text","text":"A filter for amiibo requests."}],"title":"AmiiboFilter","navigatorTitle":[{"kind":"identifier","text":"AmiiboFilter"}],"url":"\/documentation\/amiiboservice\/amiibofilter"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/series":{"kind":"symbol","title":"series","url":"\/documentation\/amiiboservice\/amiibofilter\/series","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"series"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"kind":"text","text":"?"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/series","type":"topic","abstract":[{"text":"An amiibo series key or name to match, if any.","type":"text"}]}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"showGames","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:Sb","text":"Bool","kind":"typeIdentifier"},{"text":"?","kind":"text"}]}]}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibofilter\/showgames"]}],"schemaVersion":{"patch":0,"major":0,"minor":3},"metadata":{"role":"symbol","modules":[{"name":"AmiiboService"}],"title":"showGames","roleHeading":"Instance Property","externalID":"s:13AmiiboService0A6FilterV9showGamesSbSgvp","symbolKind":"property","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"showGames","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:Sb","text":"Bool","kind":"typeIdentifier"},{"text":"?","kind":"text"}]},"kind":"symbol","identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showGames"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"sections":[],"abstract":[{"type":"text","text":"A flag that indicates whether to include related games in "},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property","isActive":true},{"type":"text","text":". "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" means "},{"type":"codeVoice","code":"false"},{"type":"text","text":"."}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","kind":"symbol","role":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboFilter"}],"type":"topic","abstract":[{"type":"text","text":"A filter for amiibo requests."}],"title":"AmiiboFilter","navigatorTitle":[{"kind":"identifier","text":"AmiiboFilter"}],"url":"\/documentation\/amiiboservice\/amiibofilter"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/showGames":{"title":"showGames","kind":"symbol","url":"\/documentation\/amiiboservice\/amiibofilter\/showgames","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"showGames"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":"?"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showGames","type":"topic","abstract":[{"type":"text","text":"A flag that indicates whether to include related games in "},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property","isActive":true},{"type":"text","text":". "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" means "},{"type":"codeVoice","code":"false"},{"type":"text","text":"."}]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/platform-swift.property":{"title":"platform","kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.property","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"platform"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Platform","preciseIdentifier":"s:13AmiiboService0A0V8PlatformV"},{"kind":"text","text":"?"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property","type":"topic","abstract":[{"type":"text","text":"The related games of this amiibo, grouped by platform."}]}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"showUsage"},{"text":": ","kind":"text"},{"text":"Bool","kind":"typeIdentifier","preciseIdentifier":"s:Sb"},{"text":"?","kind":"text"}]}],"kind":"declarations"}],"sections":[],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibofilter\/showusage"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"metadata":{"roleHeading":"Instance Property","title":"showUsage","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"showUsage","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:Sb","text":"Bool","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A6FilterV9showUsageSbSgvp","symbolKind":"property"},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showUsage"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"kind":"symbol","abstract":[{"type":"text","text":"A flag that indicates whether to include related games and their amiibo usages in "},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property","isActive":true},{"type":"text","text":". "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" means "},{"code":"false","type":"codeVoice"},{"type":"text","text":"."}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","kind":"symbol","role":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboFilter"}],"type":"topic","abstract":[{"type":"text","text":"A filter for amiibo requests."}],"title":"AmiiboFilter","navigatorTitle":[{"kind":"identifier","text":"AmiiboFilter"}],"url":"\/documentation\/amiiboservice\/amiibofilter"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/platform-swift.property":{"title":"platform","kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.property","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"platform"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Platform","preciseIdentifier":"s:13AmiiboService0A0V8PlatformV"},{"kind":"text","text":"?"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property","type":"topic","abstract":[{"type":"text","text":"The related games of this amiibo, grouped by platform."}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/showUsage":{"title":"showUsage","url":"\/documentation\/amiiboservice\/amiibofilter\/showusage","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"showUsage"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","text":"Bool"},{"kind":"text","text":"?"}],"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showUsage","abstract":[{"type":"text","text":"A flag that indicates whether to include related games and their amiibo usages in "},{"type":"reference","isActive":true,"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property"},{"type":"text","text":". "},{"type":"codeVoice","code":"nil"},{"type":"text","text":" means "},{"type":"codeVoice","code":"false"},{"type":"text","text":"."}]}}}
@@ -1 +0,0 @@
{"primaryContentSections":[{"kind":"declarations","declarations":[{"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"kind":"text","text":" "},{"text":"tail","kind":"identifier"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"text":"?","kind":"text"}],"platforms":["macOS"]}]}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibofilter\/tail"]}],"kind":"symbol","metadata":{"externalID":"s:13AmiiboService0A6FilterV4tailSSSgvp","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"tail"},{"kind":"text","text":": "},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"},{"kind":"text","text":"?"}],"symbolKind":"property","roleHeading":"Instance Property","title":"tail","modules":[{"name":"AmiiboService"}],"role":"symbol"},"schemaVersion":{"patch":0,"major":0,"minor":3},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/tail","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"sections":[],"abstract":[{"type":"text","text":"The last 8 hexadecimal characters of an identifier to match, if any. Shorter values match as a prefix."}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"title":"AmiiboFilter","kind":"symbol","url":"\/documentation\/amiiboservice\/amiibofilter","role":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboFilter"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","navigatorTitle":[{"kind":"identifier","text":"AmiiboFilter"}],"type":"topic","abstract":[{"type":"text","text":"A filter for amiibo requests."}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/tail":{"title":"tail","role":"symbol","url":"\/documentation\/amiiboservice\/amiibofilter\/tail","kind":"symbol","fragments":[{"text":"let","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"tail"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"text":"?","kind":"text"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/tail","abstract":[{"type":"text","text":"The last 8 hexadecimal characters of an identifier to match, if any. Shorter values match as a prefix."}]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]}}}
@@ -1 +0,0 @@
{"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibofilter\/type"]}],"kind":"symbol","primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"type"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"?"}]}]}],"metadata":{"role":"symbol","externalID":"s:13AmiiboService0A6FilterV4typeSSSgvp","symbolKind":"property","title":"type","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"type"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"?"}]},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"schemaVersion":{"major":0,"patch":0,"minor":3},"sections":[],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/type"},"abstract":[{"type":"text","text":"An amiibo type key or name to match, if any."}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/type":{"title":"type","role":"symbol","url":"\/documentation\/amiiboservice\/amiibofilter\/type","kind":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"type"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"?"}],"type":"topic","abstract":[{"type":"text","text":"An amiibo type key or name to match, if any."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/type"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","role":"collection","url":"\/documentation\/amiiboservice","kind":"symbol","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","abstract":[{"type":"text","text":"A Swift client for the Amiibo API."}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","kind":"symbol","role":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboFilter"}],"type":"topic","abstract":[{"type":"text","text":"A filter for amiibo requests."}],"title":"AmiiboFilter","navigatorTitle":[{"kind":"identifier","text":"AmiiboFilter"}],"url":"\/documentation\/amiiboservice\/amiibofilter"}}}
Loaded 100 of 361 files, more files were not shown because too many files have changed in this diff. Show more