Yes. BCMR has a specification to manage an identity from a chain of transactions (an AuthChain), where metadata can be updated with on-chain proof later by putting a hash of the new JSON schema in an OP_RETURN created by the AuthHead (end of the transaction chain), with a link to the new metadata URL.
The two systems wouldn’t be mutually exclusive. Someone could start with SMP then switch to BCMR, or use both in parallel. Ideally, it should be possible to pass a outpoint to a function and generate a BCMR json file from a SMP base transaction:
let bcmrBlob = await smp.from(outpoint).asBcmr()
Or, someone may do a small initial project with SMP then scrap it and redo it with BCMR once they had played with the tokens a bit.
SMP doesn’t have identities, or updates after minting. It doesn’t need SSL, or domains, or third parties or large schemas.
Being able to say “test token” and have that data immediately reflected in a test wallet may get people more interested in using CashTokens and taking further steps to invest the time in using BCMR.
In many cases, the OP_RETURN size for a SMP record set might end up being smaller than one BCMR on-chain update.
In terms of future path or ecosystem trajectory, the BCMR spec wasn’t something arrived at through a broad consensus. It’s an application layer standard, and there can be many of those that exist in parallel, competing and complementing one another.
My immediate and long-term problem is that a contract is not going to post json to a registry, or hash a json file. BCMR also introduces a long chain of centralized failure points, that still have an extremely small attack area, as we saw with the otr.cash domain renewal recently.
Someone that just wants to try printing a token on their phone doesn’t want to learn what an Authchain is or manage an identity. When they want to have more valuable tokens, they’ll build an identity and manage more complex authorization.
In terms of actual implementations of BCMR, I’m not seeing a lot of wallets or software use it outside the webapp crowd. I’m not sure if my setup is broken, but it doesn’t seem to be fully implemented in EC, or any other wallet outside Cashonize, Paytaca and Zapit. [EDIT: BCMR works in Electron-cash, but not on my machine.]
I think BCMR is the right path for most projects, and SMR0 might be a good step stool to get there.
I have no intention of chipping for SMR1. There are a lot of things about SMR0 that are deliberately limited to encourage people to move upward to the better system.