In a medium heavy-bottomed saucepan, combine the uncooked rice, water, and salt.
Bring to a gentle boil over medium heat, then reduce heat to low, cover, and simmer for about 15 minutes, until most of the water is absorbed and the rice is partially cooked.
Stir in the milk, maple syrup, and cinnamon.
Keep the heat low and let the mixture simmer uncovered for 30–35 minutes, stirring often, especially near the end so the milk does not scorch the bottom of the pan.
The pudding should slowly thicken and become creamy as the rice softens and releases starch. It should be soft and spoonable, not dry.
In a small bowl, beat the egg, then slowly whisk a few spoonfuls of the hot rice mixture into the egg to temper it.
Gradually stir the tempered egg mixture back into the saucepan.
Cook over low heat for 2–3 more minutes, stirring constantly, just until slightly thicker. Do not boil after adding the egg.
Remove from heat and stir in the vanilla, butter, and raisins/cranberries if using.
Sprinkle the rice pudding lightly with extra cinnamon, then bake at 325°F for 10-15 minutes until the top is lightly set. (I simply put my cast-iron pot in the oven, but if you do not have one, be sure to transfer it to a buttered baking dish first.)