Following yesterday's conversation (#🔹|developer-chat message), I forked the soroban-examples repo and added a quick change to the token example so it allows subscriptions. Now why do I think the token contract is the correct place? Because users are used to the idea of subscriptions with their cards/banks and we normally think about cards/banks as balances in a single bank/fintech (how much money do I have in my euro account? and how much in my dollar account? Is my X credit card with enough funds?) and a token contract in some way is also a balance on my account.
As an example I will take wise.com (but there are multiple options like this): One single account with multiple balances with their own denominations (eur, usd, gbp, etc) which it's like one stellar account with different tokens balances. By having simple subscriptions on the token interface we can emulate something similar for the vast majority of use cases that need a subscription without the risk of allowing third parties with huge allowances like people do on ERC-20 alike systems (and at the same time we teach devs because I always need to remove the allowance and create one again since devs there always asume people gave them infinite allowance).
Now, being honest even without this at the token interface we still can create subscriptions either by having a custom asset or by using allowances with a subscription contract but having it at the token interface remove the possible drawbacks of those two options
Here is the added coded: https://github.com/stellar/soroban-examples/compare/main...earrietadev:soroban-examples:feature/subscriptions
PS: This is not final code, it's more to show what I meant during that conversation and because of that it doesn't have events, checks nor testing is valid but if people like the idea I can improve it and add everything that is missing for a potential pull request