When creating a perfect competitive pokemon, some attributes need to be correct on hatch/catch while others can be improved. This generation makes it easier than ever to turn a pokemon into a perfect pokemon.
Lets say I have a pokemon that, because of shininess, sentimental value, or other reasons, I want to use rather than breeding something better. It has the wrong nature, IVs, moves, ability, and just about everything.
What can be improved in game? What cannot be?