I would like a validator (or a minting policy) to succeed always but only to spend the output if some conditions are met;
an example use case of such behaviour is to allow burning token (kind of a "ticket" to use the smart contract) in both cases if the conditions are met or not;
also, I would like the user not to know if it is allowed to spend an output (therefore to meet the conditions) because if that was the case then it would be enough just a condition that asserts that 0 token are minted form the offchain if it should fail; or a tot-token are minted if it should succed; but this would require the user to know the result in order to build the rigth transaction.
I know Cardano smart contracts are designed to prevent failing smart contract to execute, but is there a way to allow this bheaviour if controlled such as in this case?