Assignment
Assignment is a combination of some data (state) with a specific single-use seal definition, like bitcoin transaction outpoint.
Assignments exist on a client side, and are never part of blockchain. While single-use seal definition references some on-chain data structures (like transaction outpoints), this is a mere pointer which is not on-chain.
In other words, assignment creates a binding between certain value, known only to a user and existing offchain, and a specific public single-use resource (i.e. single-use seal). This binding is also not publicly known, unless the user creating the assignment would disclose it.
Give me an example
Let's assume you are an asset issuer, either a fungible token under a RGB20 standard, or NFT under RGB21. The issue is just a declaration, put in the RGB contract genesis and known only to you, plus those whom you'd tell (i.e. share the contract consignment with). The declaration should read "hereby I declare the issue of N tokens, owned by this bitcoin transaction outpoint". Here, the declaration is the assignment, the N tokens part is the assigned state, and the provided bitcoin transaction outpoint, owning the issued tokens, is a signle-use seal definition.
What assignments are used for?
Assignments are a part of all types of RGB contract operations, including contract genesis, state transitions and state extensions. They are created by contract users and act as operation outputs -- similar to the role of bitcoin transaction outputs.
How assignments are look like?
You won't meet assignments directly when working with RGB: they are hidden deep inside RGB Core library. The only place where RGB user can face them is terminologically: when someone talks about client-side validation, the right way to say is that some data or a state is assigned by a user (i.e. client) to a public single-use seal definitions and validated in that way.