Felt vs Uin256...which scenarios?

When should we use Uint256? I suppose this will be necessary when doing a lot of L1/l2 interactions so that data is compatible with Ethereum. If the app is native to starknet, would felts suffice?

One additional thing to consider is that Uint256 requires twice the amount of storage compared to felt, so it may make sense to limit monetary values to be within some reasonable range and only use Uint256 when interfacing with ERC20.