I probably should have caught this earlier, but did you have problems with having these use the actual Function (or other) enums? I'm fairly certain that's how we handle it in other clients, though we may serialize it differently.