MisterTicot If you take the Crypto Kitties contract as reference, we could define 2 domains where NFT properties reside:
The contract domain driven by consensus. It is immutable and confers a token its uniqueness. E.g. In CryptoKitties, it implements uniqueness with ERC-721 and provides a function to compute the gene of each kitty (GeneScienceInterface) and also controls the cooldown (cooldownEndBlock in the code).
The meta domain that is being referred to by the token defined in the contract domain. This domain is not linked to the blockchain consensus. E.g. in Cryptokitties this domain contains the graphics for each Kitty, names etc and it is fully controlled from Cryptokitties servers.
Essentially, anything can be added to the meta domain but since it is not linked to the blockchain consensus there are drawbacks. For example, cryptokitties devs may decide to change the graphics of their kitties or worse, the meaning of some gene properties etc. Some of these drawbacks can be mitigated (dzham implementation uses IPFS server for decentralized control) but metadata remain outside of blockchain consensus, the whole link token->meta could therefore be refuted.
So yes, it is always possible to implement cooldowns (or anything else a dev may fancy) within the meta domain, but in order to functionally emulate ERC-721 tokens, I was looking for ways to implement cooldowns in the contract domain.
Stellar NFT can implement uniqueness and traits in the contract domain then devs can associate the meta domain to it providing the semantic for the token (e.g. gene code interpertation in Cryptokitties).