The `init` function runs exactly once when a package is published on-chain. It takes a `&mut TxContext` (or a One-Time Witness) and initializes administrative capabilities or shared states.
move
fun init(ctx: &mut TxContext) {
let admin_cap = AdminCap { id: object::new(ctx) };
transfer::transfer(admin_cap, ctx.sender());
}