Slots
Last updated
Last updated
Slots group assets by function to help apps know how to use the asset. Slots are used to create new Expressions and Collections, to customize sharing assets through permissions, and more.
Imagine a simple dress-up game that uses assets for clothing items. We can group clothes into a few categories - hats, glasses, shirts, pants, and shoes. While this isn't an exhaustive list, these categories are clearly distinct. If a piece of clothing is a hat, it isn't a shoe.
If you were building this game using Asset Layer, we'd recommend creating a slot for each category of clothes. If I create a collection of tennis shoe assets, that collection should be a part of the shoe slot. If the collection is of baseball caps, then the collection should be a part of the hat slot. By grouping your assets by function using slots, it is much easier to share these assets across apps. Our tools make use of slots today, and we will increasingly utilize the slot as a fundamental building block for apps using Asset Layer.
Slots become the basis for interoperability of assets between apps. Slots are created as a part of a specific app, but apps can also add slots from other apps. A slot owner is the app which created a given slot. A foreign slot is a slot that has been added to your app which wasn't created by your app. Adding a foreign slot requires permission from the slot owner. For more details about permissions, see Auth + Permissions page.
When you add a foreign slot to your app, you get access to assets which occupy that slot. Because slots group assets by function, you should be able to use any asset in that slot in a predictable way. It is the responsibility of slot owners to manage their slots effectively and to only approve collections of assets which meet the requirements of a slot.
slotId: a UUID for the slot
slotName: a name for the slot
slotImage: a url for a 300x300 image used to represent the slot in menus
description: a text description of the slot
appId: the app that created the slot
acceptingCollections: true if the slot is accepting collection submissions from third parties
isPublic: true if the slot can be shared with other apps
collectionTypes: specifies which collection types can be contained in the slot. Can be "both", "unique", or "identical"
createdAt: date-time when the app was created
updatedAt: date-time when the app was last updated
collections : an array of collectionIds that are a part of the slot (see Assets + Collectionsfor details)
expressions: an array of expressionIds that are a part of the slot (see Expressions for details)